我有一个.txt文件,其中有13列。第一个是字符(名称),接下来的12个是数字。还有1000行。我想过滤掉甚至一列的值小于10的行。换句话说,我只需要所有列中值等于或大于10的行。你能不能让我知道如何在R中做到这一点?
感谢。
答案 0 :(得分:0)
您可以使用R中的which()
功能来满足您的条件。创建一些测试数据:
> test
X1 X2 X3 X4
1 9.725585 10.067146 9.473320 9.959529
2 10.104124 11.278900 9.299356 10.317570
3 8.770733 11.092994 9.803285 12.078180
4 10.163150 9.233452 9.425293 9.968435
5 9.815270 9.932501 9.798252 9.194674
6 10.635158 9.175388 10.938356 10.611528
7 10.959444 7.766411 8.955005 10.712767
8 9.907442 10.123078 9.897276 10.467526
9 9.337628 10.811072 11.062031 10.426313
10 10.056789 11.029007 10.875958 11.160633
使用which(test < 10, arr.ind = TRUE)
给出:
> head(which(test < 10, arr.ind = TRUE))
row col
[1,] 1 1
[2,] 3 1
[3,] 5 1
[4,] 8 1
[5,] 9 1
[6,] 4 2
然后:
> sort(unique(which(test < 10, arr.ind = TRUE)[, 1]))
[1] 1 2 3 4 5 6 7 8 9