【发布时间】:2018-04-15 16:07:53
【问题描述】:
我通常是 SAS 用户,但想知道 R 中是否有类似的方法来列出合并后只能在一个数据框中找到的数据。在 SAS 中我会使用
data want;
merge have1 (In=in1) have2 (IN=in2) ;
if not in2;
run;
仅在 have1 中查找条目。 我的 R 代码是:
inner <- merge(have1, have2, by= "Date", all.x = TRUE, sort = TRUE)
我试过 setdiff() 和 antijoin() 但似乎都没有给我想要的东西。此外,我想找到一种相反的方法。我想在 have1 和 have2 中找到具有相同“日期”条目的条目,然后将其余变量保留在 2 个数据框中。例如,考虑具有列“Date”、“ShotHeight”、“ShotDistance”的 have1 和具有列“Date”、“ThrowHeight”、“ThrowDistance”的 have2,因此 m]new 数据帧,称之为“new”具有列“Date” ", ShotHeight", "ShotDistance", "ThrowHeight", "ThrowDistance"。
【问题讨论】:
-
我相信这里更标准的术语是反加入,IIUC。希望这可以帮助继续搜索... data.table 和 dplyr 都内置了此功能的干净/自然实现
-
@Renu 这不是骗子,因为 OP 想要的东西没有列在那个问题的选项中。
-
in是一个运算符和一个数据步选项,但从技术上讲,它不是一个函数。 -
您的 SAS 代码没有
BY语句。如所写,您正在对 have1 和 have2 进行逐行合并。这与您编写的 R 代码不同,后者根据每个数据帧中的County列的值合并两个数据帧。这是你想要的吗?