我有2000行HR数据集,需要在grepping字符串模式后追加列。我想从df2到df1匹配(有时不是完全匹配)edu列,并打印各自的Dep行。
此外,当df1中没有edu模式匹配时,再次粘贴相同的Dep字符串,而不是NA,反之亦然(如预期结果的最后两行所示)。有什么建议么?谢谢。
df2 <-data.frame(Dep = c(“研究与开发”,“销售”,“研究与开发”,“研究与开发”,“销售”,“销售”),Edu = c(“生命科学”,“市场营销”,“辅助医疗”,“其他”,“技术研究”,“商业”))
df1 <-data.frame(Dep = c(“销售”,“销售”,“研究与开发”,“研究与开发”,“人力资源”,“研究与开发”,“法律部分”) ,Edu = c(“生命科学”,“市场营销”,“医疗”,“其他”,“人力资源”,“技术”,“法律”))
预期产量
Dep_df1 Edu_df1_df2 Dep_df2
Sales Life Sciences Research & Development
Sales Marketing Sales
Research & Development Medical Research & Development
Research & Development Other Research & Development
Human Resources Human Resources Human Resources
Research & Development Technical Sales
legal section Law legal section
sales Business sales
答案 0 :(得分:0)
一种可能的方式-使用dplyr
加入。这将导致在相同的命名列后附加.x
和.y
的列名。
library(dplyr)
df1 <- data.frame(Dep = c("S", "S", "R"), Edu = c("LS", "M", "O"))
df2 <- data.frame(Dep = c("G", "L", "Q"), Edu = c("LS", "M", "O"))
df2 %>% left_join(df1, by = c("Education")
答案 1 :(得分:0)
经过一番尝试,这项工作奏效。
dd=merge(df1, df2[, c("Edu", "Dep")], by="Edu", all.x = TRUE)
transform(dd, dep.yfill = pmax(Dep.x, Dep.y, na.rm = TRUE))