[问题] 资料的截取与逻辑判断

楼主: k97231 (AL)   2018-06-26 21:26:50
我现在正在处理一些有关于生物资讯的资料
基本上的资料格式长这样
ID A_1 A_2 B_1 B_2 ……
1 0/0 0/0
2 0/0 ./.
3 ./. ./.
4. 0/0 0/1
5. 1/1 0/1
6. 0/1 0/1
……
接着我想要做几件事情
依据相同字母的样本(像是A_1和A_2)
逐列统计四种字段的数量
1. A_1和A_2相同
2. A_1和A_2都一样是./.
3. A_1和A_2不一样
4. 以及任一样本含有./.的字段数量
以上表为例
A_1和A_2相同的数量是3 (ID1, 3, 6)
两行数值都是./.的数量是1
A_1和A_2不同的列有3 (ID2, 4, 5)
有任一行数值为./.的数量为2 (ID2, 3)
然后统计成四个数值这样并输出
不过有问题的部分是要如何撷取含有特定字串的两栏
并逐行进行逻辑判断?
我知道可以利用awk逐行进行撷取并用grep计算数量并输出 (不过awk和grep的管线顺序还没参透)
但要如何依据相同字母撷取特定行就不清楚了
想问有什么指令可以针对首列带有特定字串的行进行撷取?
作者: Kouni (newbie)   2018-06-26 22:12:00
看需求好像是针对行去做判断, awk 应该可以做到. 类似这样:awk '{if ($2 == $3){print $0}}'可以判断两值关系, 但如果要弄成较友善的资料格式还是建议使用其他程式语言会比较快XD
作者: kenduest (小州)   2018-06-26 22:26:00
这个用 python 搭配 pandas 处理会很快,学点其他语言
楼主: k97231 (AL)   2018-06-27 10:31:00
不过现在我还只是linux新手 其他的程式语言只有R
作者: a1u1usul3 (Q-Max)   2018-06-27 11:00:00
linux的几个程式只是堪用,不是很好用。字串处理还是用别的语言做会方便、好做很多,也比较查得到资料
楼主: k97231 (AL)   2018-06-27 17:39:00
刚刚试用了一下pandas 可以依据字段名撷取资料
作者: kenduest (小州)   2018-06-28 11:35:00
请看官方的文件,data frame 是很单纯事情

Links booklink

Contact Us: admin [ a t ] ucptt.com