【发布时间】:2020-08-07 22:43:25
【问题描述】:
我有两个具有不同行数 (>5000) 和列数 (~10) 的数据框。但是,它们都包含我感兴趣的两列:“名称”和“位置”。这些是两家不同公司的历史职位。我的目标是找到在公司 2 (df2) 工作之前在公司 1 (df1) 工作的个人以及他们在两家公司的职位。
在每个数据框中,名称列具有所有唯一值。并非 df1 中的所有名称都出现在 df2 中,而且顺序也不相同。
在Position列中,df中只有两个值:manager和intern。
df1 <- data.frame("Name" = c("Adam","Emma","Liz"),
"Position" = c("intern","manager","intern"),
"X" = c(123,321,111))
df2 <- data.frame("Name" = c("Adam","Liz","Carl","Sarah"),
"Position" = c("manager","intern","intern","manager"),
"Y" = c(999,987,789,777))
我需要一个代码帮助,该代码比较两个数据帧中的“名称”列,并作为结果返回一个数据帧,其中包含在名称中找到匹配值的那些行的 df2 的所有列。这将代表公司 2 中曾经在公司 1 工作过的当前员工。
尽管如此,我还需要知道他们之前在公司 1 的工作职位,这就是为什么我需要生成的数据框有一个新列,该列的位置为 df1。
类似这样的:
result <- data.frame("Name" = c("Adam","Liz"),
"Position" = c("manager","intern"),
"Y" = c(999,987)
"Position_df1" = c("intern","intern"))
我搜索了其他问题,但没有成功。
谢谢
【问题讨论】:
-
merge(df1, df2, by = "Name") -
这是一个“加入”或“合并”操作。见stackoverflow.com/q/1299871/3358272 和stackoverflow.com/a/6188334/3358272