答案 0 :(得分:0)
我们可以使用row/column
索引从第一个数据集中提取元素,并在“d2”中创建“结果”列
d2$result <- d1[-1][cbind(1:nrow(d1), match(d2$mycol, names(d1)[-1]))]
d2
# mycol result
#1 a 40
#2 bxb 88
#3 bxb 76
#4 ct 33
也可能存在单个数据集,即'd1'并且想要获得'd2'。在这种情况下,请执行melt
和subset
library(reshape2)
subset(melt(d1, id.var="mycol"), mycol==variable, select= c(1,3))
d1 <- data.frame(mycol = c("a", "bxb", "bxb", "ct"), a = c(40, 8, 43, 94),
`bxb` =c(7, 88, 76, 12), ct = c(4,6, 8954, 33), stringsAsFactors=FALSE,
check.names=FALSE)
d2 <- data.frame(mycol = c('a', 'bxb', 'bxb', 'c'), stringsAsFactors=FALSE)