我在寻找类似的方法时发现了这一点。
Selecting rows with same result in different columns in R
有没有办法在一系列列中进行搜索?在链接中播放示例,如果不是catch[catch$tspp.name == catch$elasmo.name,]
,可以执行此操作吗?
catch[catch$tspp.name == c[23:56],]
其中R将搜索第23到56列中与tspp值匹配的值?
在此先感谢您,请告诉我是否最好就与之前帖子相关的主题发布独立提问或在上述帖子中插入跟进问题。
答案 0 :(得分:1)
这是一种方法。这会找到X
行,其中第一列显示在第2列到第9列中。
> set.seed(1)
> X<-matrix(sample(10,100,T),10)
> X
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 3 3 10 5 9 5 10 4 5 3
[2,] 4 2 3 6 7 9 3 9 8 1
[3,] 6 7 7 5 8 5 5 4 4 7
[4,] 10 4 2 2 6 3 4 4 4 9
[5,] 3 8 3 9 6 1 7 5 8 8
[6,] 9 5 4 7 8 1 3 9 3 8
[7,] 10 8 1 8 1 4 5 9 8 5
[8,] 7 10 4 2 5 6 8 4 2 5
[9,] 7 4 9 8 8 7 1 8 3 9
[10,] 1 8 4 5 7 5 9 10 2 7
> X[rowSums(X[,1]==X[,2:9])>0,]
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 3 3 10 5 9 5 10 4 5 3
[2,] 3 8 3 9 6 1 7 5 8 8
[3,] 9 5 4 7 8 1 3 9 3 8
[4,] 7 4 9 8 8 7 1 8 3 9