R 程序,用于比较两个数据帧以查找第一个数据帧中的行


2022年12月28日, Learn eTutorial
2178

如何比较两个数据帧以查找存在于第一个数据帧但不存在于第二个数据帧中的行

数据帧用于存储具有等长向量列表的数据表。为了编写一个用于比较数据帧的 R 程序,我们使用 data.frame() 函数。它是一个内置函数,有助于创建数据帧。setdiff() 函数有助于计算概率空间子集的(非对称)集合差,用于比较。该函数的语法是,


setdiff(x, …) 

其中

  • x, y 向量、数据帧或包含项目序列的 ps 对象。
  • dots(...) 表示要传递给其他方法或从其他方法传递的参数。

如何在 R 程序中实现数据帧比较逻辑

在这个 R 程序中,我们直接将数据帧提供给一个内置函数。这里我们使用变量 DF1 和 DF2 来保存不同的数据帧。调用 data.frame() 函数来创建 DF。最后,通过调用函数 setdiff(),如 setdiff(DF1, DF2) 来比较两个 DF。

算法

步骤 1:将变量 DF1, DF2 分配给数据帧

步骤 2:首先打印原始值

步骤 3:通过调用 setdiff(DF1,DF2) 进行比较

步骤 4:打印最终结果

R 源代码

                                          DF1 = data.frame(
  "item" = c("item1", "item2", "item3"),
  "Jan" = c(12, 14, 12),
  "Feb" = c(11, 12, 15),
  "Mar" = c(12, 14, 15)
)
DF2 = data.frame(
  "item" = c("item1", "item2", "item3"),
  "Jan" = c(12, 14, 12),
  "Feb" = c(11, 12, 15),
  "Mar" = c(12, 15, 18)
)
print("Original Dataframes:")
print(DF1)
print(DF2)
print("Row(s) in first data frame that are not present in second data frame:")
print(setdiff(DF1,DF2))
                                      

输出

[1] "Original Dataframes:"
   item Jan Feb Mar
1 item1  12  11  12
2 item2  14  12  14
3 item3  12  15  15
   item Jan Feb Mar
1 item1  12  11  12
2 item2  14  12  15
3 item3  12  15  18
[1] "Row(s) in first data frame that are not present in second data frame:"
  Mar
1  12
2  14
3  15