【发布时间】:2017-01-23 15:39:46
【问题描述】:
我有两个数据框,每个都包含标识符。
df1 <- data.frame(ID = c(20001, 20001, 20003, 20003, 20003, 20003))
df2 <- data.frame(ID = c(20001, 20001, 20003, 20003, 20003, 20005),
Type = c('N1', 'N2', 'N3', 'N4', 'N5', 'N6'))
我想通过匹配 ID 在 df1 中使用 df2$Type 的值创建第二列。这是我查找值的常用方法
df1$Add <- df2$Type[match(df1$ID, df2$ID)]
但是,使用这种匹配方法将获得第一个 ID 匹配并带来相应的值给我这样的东西
ID Add
20001 N1
20001 N1
20003 N3
20003 N3
20003 N3
20003 N3
相反,我想为每个重复的 ID 引入“下一个”类型值,基本上是在循环中。理想情况下,我想关注输出。
ID Add
20001 N1
20001 N2
20003 N3
20003 N4
20003 N5
20003 N3
我认为它可能需要使用 lapply 和用户定义的函数。
【问题讨论】: