数据
ID,Age,Gender
100,69,male
101,75,female
102,84,female
103,,male
104,66,female
代码
DF <- read.csv("/home/masi/data.csv", header = T)
ids <- c(101,103)
ages <- DF[which(ids), ]$Age
输出
Error in which(ids) : argument to 'which' is not logical
Calls: makeMatrixPlot -> [ -> [.data.frame -> which
Execution halted
您可以执行DF[which(gender, ]$ID
,但为什么不Age
。
% http://stackoverflow.com/q/40365526/54964
DF[DF$ID %in% ids,"Age"]
with(DF[DF$ID %in% ids,],Age)
操作系统:Debian 8.5 答案 0 :(得分:1)
使用which()
这样的子集不是一个好主意。将subset()
函数与%in%
运算符一起使用,以测试向量中的成员资格。
ages <- subset(DF, ID %in% ids)$Age
或使用match
函数进行子集化
ages <- DF[match(ids, DF$ID),"Age"]