R 根据匹配的大小写将特定列从一个数据帧添加到另一个数据帧

R 根据匹配的大小写将特定列从一个数据帧添加到另一个数据帧,r,R,我有两个数据帧,我想从data2数据帧向data1数据帧添加两列AGE和IQ,仅用于匹配ID。以下是两个数据帧的示例: data1= structure(list(ID = c(1L, 2L, 3L, 4L, 5L), CONDITION = structure(c(1L, 1L, 1L, 2L, 2L), .Label=c("ANX","ADHD"), class = "factor")), class = "data.frame", row.names = c(NA, -5L))

我有两个数据帧,我想从data2数据帧向data1数据帧添加两列AGEIQ,仅用于匹配ID。以下是两个数据帧的示例:

    data1= structure(list(ID = c(1L, 2L, 3L, 4L, 5L), CONDITION = structure(c(1L, 1L, 1L, 2L, 2L), .Label=c("ANX","ADHD"), class = "factor")), class = "data.frame", row.names = c(NA, -5L))

    data2= structure(list(ID = c(1L, 2L, 3L, 4L, 5L, 6L, 7L), CONDITION = structure(c(1L, 1L, 1L, 2L, 2L, 3L, 3L), .Label=c("ANX","ADHD", "COM"), class = "factor"), AGE = c(7L, 8L, 8L, 9L, 9L, 10L, 11L), IQ =c(78L, 83L, 116L, 90L, 80L, 85L, 87L)), .Names= c("ID", "CONDITION", "AGE", "IQ"), class = "data.frame", row.names = c(NA, -7L))
到目前为止,我已经尝试过以下方法:

    merge(data1, data2[, c("AGE", "IQ")], by= "ID")

任何帮助都将不胜感激!提前感谢。

data1$AGE您需要公共列。在
data2
中,您跳过了“ID”。这将是
merge(data1,data2[,c(“年龄”,“智商”,“身份”),by=“ID”)
@akrun你应该把它变成一个答案:)@arthurpoon我认为作为一个dupe@akrun,谢谢,成功了!有一段时间我很傻,眼睛瞎了。非常感谢!:)
data1$AGE <- data2$AGE[match(data1$ID, data2$ID)]
data1$IQ <- data2$IQ[match(data1$ID, data2$ID)]