2016-04-02 188 views
0

我是R的初學者,並且無法使用列值向量索引到數據幀。R:通過多個列值將數據幀索引到數據幀中

我想選擇2個參與者的所有行。

數據是數據幀。參與者是列

data[data$participant == c(8, 10),])

我想這應該給我從兩個參與者8和10中的所有行,而是它給我行的一半參與者8,另一半來自參與者10.在其他字,

dim(data[data$participant == c(8, 10),])dim(data[data$participant == 8,])dim(data[data$participant == 10,])相同,而不是雙倍。

這個問題似乎是與索引這些多列類型的語法: data$participant == c(8, 10)

我會就如何做到這一點任何提示感謝(不單獨做每一個參與者)!謝謝!

回答

2

對於多個值,請使用%in%來獲取邏輯向量。

data[data$participant %in% c(8, 10),] 

當我們使用==c(8,10)用,它被再循環8和10,即8,10,8,10,8,10 ...等爲 '參與者' 列的長度。因此,如果參與者中的第一個值爲8,則它將返回TRUE,但如果第二個值爲8,則它將變爲FALSE,因爲相應元素將爲10.

相關問題