我有一个类似下面的文件。我想打印最后一列中的值大于90的行。我不知道如何指定正确的列。
29974 A1CF NM_138932 9606 hsa-miR-4711-3p 3 25 32 -0.018 -0.095 -0.108 0.003 0.017 -0.448 99
29974 A1CF NM_138933 9606 hsa-miR-4711-3p 3 25 32 -0.018 -0.095 -0.108 0.003 0.017 -0.448 99
29974 A1CF NM_014576 9606 hsa-miR-4711-3p 3 25 32 -0.018 -0.095 -0.108 0.003 0.017 -0.448 99
29974 A1CF NM_001198820 9606 hsa-miR-4711-3p 3 25 32 -0.018 -0.095 -0.108 0.003 0.017 -0.448 69
29974 A1CF NM_001198819 9606 hsa-miR-4711-3p 3 25 32 -0.018 -0.095 -0.108 0.003 0.017 -0.448 89
29974 A1CF NM_001198818 9606 hsa-miR-4711-3p 3 25 32 -0.018 -0.095 -0.108 0.003 0.017 -0.448 90
答案 0 :(得分:2)
print(df[which(df[,ncol(df)]>90),])
其中df是数据框对象的名称。
答案 1 :(得分:1)
通过awk。
$ awk '$NF>90' file
29974 A1CF NM_138932 9606 hsa-miR-4711-3p 3 25 32 -0.018 -0.095 -0.108 0.003 0.017 -0.448 99
29974 A1CF NM_138933 9606 hsa-miR-4711-3p 3 25 32 -0.018 -0.095 -0.108 0.003 0.017 -0.448 99
29974 A1CF NM_014576 9606 hsa-miR-4711-3p 3 25 32 -0.018 -0.095 -0.108 0.003 0.017 -0.448 99
awk处理输入文件,逐行记录,即逐行记录。
NF
是awk中的一个特殊变量,用于存储最后一列号。因此$NF
包含最后一列的值。因此$NF>90
将检查最后一列的值是否大于90。如果它是真的那么awk打印相应的行。