我想用标识符向量对特定行进行分组。
这是我的数据
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), ]
你能帮我理解为什么这里有问题。
答案 0 :(得分:0)
您的命令取决于相等性,这需要原子数据,而是您提供了一个向量。而不是这样,你可以像@davidArenburg提到的那样使用运算符。 你可以先形成一个T / F列表,然后根据列表的相应值检索列表。
%id中的数据$ id%选择
[1] TRUE TRUE FALSE
data[data$id %in% idSelect, ]