我正在使用R從數據框中提取一組行。許多行被重複拉動。這些行使用兩個標準進行選擇。不幸的是,結果產生了一組符合標準的獨特行。我將證明......R中的data.frame的非唯一結果匹配條件
鑑於data.frame:
a = data.frame(array(c(1,2,3,1,4,5,6,2,7,8,9,4), c(4,3)))
這將是這樣的:
X1 X2 X3
1 1 4 7
2 2 5 8
3 3 6 9
4 1 2 4
讓想我希望有兩套由規定的標準時a
調用陣列:
criteriaX1 = c(1,2,1,1,2)
criteriaX2 = c(4,5,4,2,5)
然後我會使用這個命令:
a[ a$X1 %in% criteriaX1 & a$X2 %in% criteriaX2, ]
希望能得到5行像這樣(看@ criteriaX1的關鍵,並讀下來X1。應明智的,如果它沒有的話):
X1 X2 X3
1 1 4 7
2 2 5 8
3 1 4 7
4 1 2 4
5 2 5 8
而是我剛剛得到這個:
X1 X2 X3
1 1 5 9
我猜它是與%in%
定義組的成員,但我我不知道如何在沒有令人討厭的循環的情況下解決這個問題。所有的幫助表示讚賞。
謝謝。
'criteriaX2'是不是真的做任何事情,所以天真的解決方案是使用'match':'A [匹配(criteriaX1,一$ X1),]' – Justin
這是什麼意思(以自然語言,請)將3添加到'criteriaX1'? –
我修改了「+ 3」以使其更清楚,但它只是爲了使它代表「criteriaX2」列中的值。此外,謝謝賈斯汀,「匹配」在你描述的條件下工作,但我的意思是在兩欄中條件是唯一的。 – cranberry