作者k97231 (AL)
看板Linux
标题[问题] 资料的截取与逻辑判断
时间Tue Jun 26 21:26:50 2018
我现在正在处理一些有关於生物资讯的资料
基本上的资料格式长这样
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的管线顺序还没参透)
但要如何依据相同字母撷取特定行就不清楚了
想问有甚麽指令可以针对首列带有特定字串的行进行撷取?
--
Sent from my Windows
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.230.107.147
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1530019613.A.AE6.html
1F:→ Kouni: 看需求好像是针对行去做判断, awk 应该可以做到. 类似这样: 06/26 22:12
2F:→ Kouni: awk '{if ($2 == $3){print $0}}' 06/26 22:13
3F:→ Kouni: 可以判断两值关系, 但如果要弄成较友善的资料格式还是建议 06/26 22:14
4F:→ Kouni: 使用其他程式语言会比较快XD 06/26 22:15
5F:→ kenduest: 这个用 python 搭配 pandas 处理会很快,学点其他语言 06/26 22:26
6F:→ k97231: 不过现在我还只是linux新手 其他的程式语言只有R 06/27 10:31
7F:推 a1u1usul3: linux的几个程式只是堪用,不是很好用。字串处理还是用 06/27 11:00
8F:→ a1u1usul3: 别的语言做会方便、好做很多,也比较查得到资料 06/27 11:00
9F:→ k97231: 刚刚试用了一下pandas 可以依据栏位名撷取资料 06/27 17:39
10F:→ k97231: 但要如何逻辑判断并令存档案就是另一个问题 06/28 11:03
11F:→ kenduest: 请看官方的文件,data frame 是很单纯事情 06/28 11:35