我似乎無法通過搜索找到答案。我想選擇基於四個條件data.frame
的一個子集(lon1,lon2,LAT1和LAT2)。我已經向量化了巨大的相似矩陣和網站(lon1,lon2,LAT1和LAT2)cbind
它。下面是一個例子的數據幀:基於多個條件的獨特組合的子集數據框
out1 <- data.frame(lon1 = sample(1:10), lon2 = sample(1:10),
lat1 = sample(1:10), lat2 = sample(1:10),
dissimilarity = sample(seq(0,1,.1),10))
> out1
lon1 lon2 lat1 lat2 dissimilarity
1 2 6 4 4 0.6
2 4 2 1 3 1.0
3 10 9 2 6 0.0
4 3 1 10 8 0.5
5 9 5 9 1 0.8
6 5 7 5 9 0.9
7 1 8 6 7 0.2
8 8 3 8 5 0.7
9 7 4 3 10 0.3
10 6 10 7 2 0.1
out2 <- out1[c(2,5,6,8),]
lon1 lon2 lat1 lat2 dissimilarity
1 4 2 1 3 1.0
2 9 5 9 1 0.8
3 5 7 5 9 0.9
4 8 3 8 5 0.7
我試着用%in%
功能以這種方式幾次:
test <- out1[(out1$lon1 %in% out2$lon1) & (out1$lon2 %in% out2$lon2) &
(out1$lat1 %in% out2$lat1) & (out1$lat2 %in% out2$lat2), ]
這似乎爲基本的例子,我在這裏提供的工作。但是,當我把它應用到我的巨大的數據幀(與許多lat
和lons
重複)我回來不是unqiue組合我需要一個更大的子集。我假設%in%
中的匹配函數只能匹配一個向量。所以,它的匹配條件1 &
條件2 &
condition3 &
condition4,因此是返回一個結果,給出了一個子集是一樣的原單out1
。當所有四個值與該行相同時,我只想得到這種情況。這樣我會得到的數據的一個子集爲兩兩相異我很感興趣。
如何通過基於四個變量的一個獨特的組合行子集將不勝感激任何想法。
你可以更具體,我不明白,因爲所有的4個條件是相同的在你的情況。 「測試」你的預期產出? – Nishanth 2013-05-13 09:19:27
@ e4e5f4,他希望整行匹配。通過做單獨的比較和他們,你可以得到所有可能的組合,不一定是連續的相同元素。這與[這個問題(我們都回答了這個問題)**](http:// stackoverflow。問題/ 16398420 /子集的數據幀在r) – Arun 2013-05-13 09:30:27