r - 识别R中2个数据帧的唯一值

标签 r dataframe tidyverse tr

我正在使用 2 个数据框。我想要一个输出出现在数据框 1 中但未出现在数据框 2 中的行的文件。以下是示例数据:

df1:
id    visit
094-1   2
094-2   3
0813-1  11
0813-3  22

df2:
id    visit
094-1   2
094-2   3
0819-2  8

这就是我想要的:

df3:
id    visit
0819-2  8

我尝试过这个,但它不起作用。有人可以帮忙吗?

library(tidyverse)
df1 %in% df2 -> x
df2[!x,]-> df3

最佳答案

在 dplyr 中,有一个函数 setdiff 用于此目的:

df1 = data.frame(id=c("094-1","094-2","0813-1","0813-3"),visit=c(2,3,11,22))
df2 = data.frame(id=c("094-1","094-2","0819-2"),visit=c(2,3,8))

dplyr::setdiff(df2,df1)
      id visit
1 0819-2     8

或者:

library(dplyr)
setdiff(df2,df1)

关于r - 识别R中2个数据帧的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65063106/

相关文章:

r - ggplot2 + 绘图 : Axis title disappear

r - 如何防止 R 加载包?

python-3.x - 应用自定义函数从字符串中提取数字到 Python 中的多列

Python:如何计算数据框中特定列中的特定值

r - 在 R Manipulate 中添加许多复选框作为列表/向量

r - 在 boxplot r 中添加回归线

python - 从只有几行的 csv 文件中填充数据框的 pythonic 方法是什么?

rename_if() 和 starts_with() 为某些列添加前缀

r - 在对称数据帧中删除行和列满足条件

r - 使用某些行作为分组新列中的值(从 excel 导入的数据)