示例:我有一个df,其中第一列是
dat <- c("A","B","C","A")
然后在第一栏中有另一个df:
dat2[, 1]
[1] A B C
Levels: A B C
dat2[, 2]
[1] 21000 23400 26800
如何将第二个df(dat2
)中的值添加到第一个df(dat
)中?在第一个df中有重复项,我希望每次有一个“ A”时,它将在新列中添加第二个df中的相应值(21000)。
产生可复制的数据框...
dat1 <- data.frame(x1 = c("A","B","C","A"), stringsAsFactors = FALSE)
dat2 <- data.frame(x1 = c("A","B","C"),
x2 = c(21000, 23400, 26800), stringsAsFactors = FALSE)
然后使用该match
功能。
dat1$dat2_vals <- dat2$x2[match(dat1$x1, dat2$x1)]
将字符列转换为character
类型而不是factor
类型很重要,否则元素将不匹配。由于levels
您dat2中的属性,我提到了这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句