R 如何使用所有行检查特定数据帧并找出差异?
使用如下数据帧:R 如何使用所有行检查特定数据帧并找出差异?,r,R,使用如下数据帧: df1 <- data.frame(id = c(1,2,3,4), num = c(23,42,12,33)) df2 <- data.frame(id = c(1,3,4,2,5), num = c(23,12,33,0,2)) df1带有setdifffromdplyr library(dplyr) setdiff(df1, df2) setdiff(df2, df1) 使用dplyr library(dplyr) setdiff(df1, df2) s
df1 <- data.frame(id = c(1,2,3,4), num = c(23,42,12,33))
df2 <- data.frame(id = c(1,3,4,2,5), num = c(23,12,33,0,2))
df1带有setdiff
fromdplyr
library(dplyr)
setdiff(df1, df2)
setdiff(df2, df1)
使用dplyr
library(dplyr)
setdiff(df1, df2)
setdiff(df2, df1)
库(dplyr)
df1%>%
反连接(df2)
df2%>%
反连接(df1)
返回
>df1%>%
+反连接(df2)
连接,通过=c(“id”,“num”)
id编号
1 2 42
及
下面是使用子集
+合并
> subset(merge(df1, cbind(df2, f = TRUE), all.x = TRUE), is.na(f), select = -f)
id num
2 2 42
> subset(merge(df2, cbind(df1, f = TRUE), all.x = TRUE), is.na(f), select = -f)
id num
2 2 0
5 5 2
或者,我们可以在%
+粘贴中使用%
> df1[!do.call(paste, df1) %in% do.call(paste, df2), ]
id num
2 2 42
> df2[!do.call(paste, df2) %in% do.call(paste, df1), ]
id num
4 2 0
5 5 2
> df1[!do.call(paste, df1) %in% do.call(paste, df2), ]
id num
2 2 42
> df2[!do.call(paste, df2) %in% do.call(paste, df1), ]
id num
4 2 0
5 5 2