具有标识符向量的子集特定行 - 警告消息

时间:2015-05-13 09:58:06

标签: r dataframe subset which

我想用标识符向量对特定行进行分组。

这是我的数据

data = rbind(c('B11008Z', 'Men', '13'),  c('B11040Z', 'Women', '14'), c('B11040E', 'Women', '12') ) 
colnames(data) <- c('id', 'sex', 'age') 
data = as.data.frame(data)

当我逐个输入个人ID时,没有问题。

data[data$id == 'B11008Z', ]
data[data$id == 'B11040Z', ]

但是,当我使用我想要的标识符创建一个向量时,会收到警告消息

idSelect = c('B11008Z', 'B11040Z')
data[data$id == idSelect, ]
# or 
data[which(data$id == idSelect), ]

你能帮我理解为什么这里有问题。

1 个答案:

答案 0 :(得分:0)

您的命令取决于相等性,这需要原子数据,而是您提供了一个向量。而不是这样,你可以像@davidArenburg提到的那样使用运算符。 你可以先形成一个T / F列表,然后根据列表的相应值检索列表。

  

%id中的数据$ id%选择
      [1] TRUE TRUE FALSE

data[data$id %in% idSelect, ]