2014-12-03 36 views
0

我在搜索类似方法时发现了这一点。在不同列中选择具有相同结果的行的扩展

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将搜索与tspp值匹配的列23至56内的值?

在此先感谢您,并请让我知道是否最好在与之前帖子相关的主题上发布独立问题或在上述帖子中插入后续问题。

回答

1

下面介绍一种方法。此发现的X行,其中第一列到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 
+0

出现在2列我得到一个错误:“==只为相等大小的数据帧中定义的”。 – odocoileus 2014-12-03 15:51:26

+0

这是我的代码:terra <-elk2 [rowSums(elk2 [1036] == elk2 [359:527])> 0,] – odocoileus 2014-12-03 15:51:52

+0

尝试'elk2 [,1036] == elk2 [,359:527]'。你忽略了逗号。 – mrip 2014-12-03 15:53:53

相关问题