【发布时间】:2020-03-21 03:10:17
【问题描述】:
这是一个非常简单的问题,但我无法在其他帖子中找到答案。例如: - Merging two dataframes, removing duplicates and aggregation in R - Merge two dataframes with repeated columns
两个 csv 文件具有相同的列名(例如,名称、电子邮件、状态等)。第一个 csv 是姓名和电子邮件的主列表。第二个是对某个活动进行了回复的个人列表。我想合并这两个数据框,删除所有重复项,然后变异为 RSVP ==“是/否”创建一个新列。我想你在这个问题中使用了 dplyr 的一个函数,但不确定它是full_join() 还是inner_join()。举个例子:
status names email company
1 invited John Smith john@email.com Company A
2 invited Abbi Maureen abbi@email.com Company B
3 invited Sara Doe Sara@email.com Company C
4 invited Maria Gonzalez maria@email.com Company D
5 invited Frank Russell frank@email.com Company E
第二个 csv 是确认出席的个人列表,他们的状态用RSVP 标记。
status names email company
1 RSVP Abbi Maureen abbi@email.com company B
2 RSVP John Smith john@email.com Company A
我一直在确定如何最好地合并这两个数据框,删除所有重复项,然后创建一个新列(即 RSVP 是不是)?会不会是full_join然后变异?
【问题讨论】:
-
如果打算在第一个数据集中创建一列,您可以使用
left_join -
df1$rsvp <- df1$name %in% df2$name我认为您不需要为此加载复杂的外国库。 -
我不清楚最终结果应该是什么。应该删除哪些重复项,哪些数据集需要新列?
-
@cory 你可以有两个同名的人。最好通过电子邮件发送,它必须是独一无二的。
-
原意是合并两个数据框。这样做会创建重复的姓名(即,主列表中的一个人和回复的人相同)。我刚试过,我不确定
left_join解决了这个问题。