R语言 如何找到两个数据帧之间的差异
在这篇文章中,我们将讨论如何在R编程语言中找到两个数据框之间的差异或比较两个数据框或数据集。
方法1: 使用相交函数
R语言中的Intersect函数有助于获得两个数据集的共同元素。
语法
intersect(names(data_short), names(data_long))
例子
first <-
data.frame(
"1" = c('0.44','0.554','0.67','0.64'),
"2" = c('0.124','0.22','0.82','0.994'),
"3" = c('0.82','1.22','0.73','1.23')
)
second <-
data.frame(
"1" = runif(4),
"2" = runif(4),
"3" = runif(4),
"d" = runif(4),
"e" = runif(4)
)
second[intersect(names(first), names(second))]
输出 。
1 2 3
1 0.562627228 0.9391250 0.6437934
2 0.003867576 0.7131200 0.9313777
3 0.129852760 0.2657934 0.9291285
4 0.325867139 0.2367633 0.1211350
方法2:使用setdiff()
这个函数与intersect不同,有助于查看第一个数据框架中缺少的列。
语法
setdiff( dataframe2, dataframe 1)
例子 。
first <-
data.frame(
"1" = c('0.44','0.554','0.67','0.64'),
"2" = c('0.124','0.22','0.82','0.994'),
"3" = c('0.82','1.22','0.73','1.23')
)
second <-
data.frame(
"1" = runif(4),
"2" = runif(4),
"3" = runif(4),
"d" = runif(4),
"e" = runif(4)
)
second[setdiff(names(second), names(first))]
输出
d e
1 0.7899783 0.04363003
2 0.9167861 0.39865991
3 0.3314494 0.13963663
4 0.7005957 0.73401069
方法3:使用colnames和dplyr
我们将从dplyr中选择获得数据框架的列,对其进行一些操作以获得两个数据框架之间的预期差异。
例子
library("dplyr")
first <-
data.frame(
"1" = c('0.44','0.554','0.67','0.64'),
"2" = c('0.124','0.22','0.82','0.994'),
"3" = c('0.82','1.22','0.73','1.23')
)
second <-
data.frame(
"1" = runif(4),
"2" = runif(4),
"3" = runif(4),
"d" = runif(4),
"e" = runif(4)
)
second%>%select(which(!(colnames(second) %in% colnames(first))))
输出
d e
1 0.7899783 0.04363003
2 0.9167861 0.39865991
3 0.3314494 0.13963663
4 0.7005957 0.73401069