2014-12-03 76 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