R 比较两个表并返回不匹配的列表
我希望能够比较两个表,让R返回一个不匹配的记录和变量列表 例如,使用以下两个表R 比较两个表并返回不匹配的列表,r,R,我希望能够比较两个表,让R返回一个不匹配的记录和变量列表 例如,使用以下两个表 > df1 id let num 1 1a a 1 2 2b b 2 3 3c c 3 4 4d d 4 5 5e e 5 > df2 id let num 1 1a a 1 2 2b b 2 3 3c c 3 4 4d e 4 5 5e d 5 我希望compare()函数返回类似“id=4d,let”的内容,让我
> df1
id let num
1 1a a 1
2 2b b 2
3 3c c 3
4 4d d 4
5 5e e 5
> df2
id let num
1 1a a 1
2 2b b 2
3 3c c 3
4 4d e 4
5 5e d 5
我希望compare()函数返回类似“id=4d,let”的内容,让我知道id=4d的记录中的let变量不匹配
我在CRAN中看到了compare库,但是如果存在不匹配,它只返回整个变量的TRUE或FALSE。是否有具有不同比较函数的库,或手动执行此操作的方法?您指的是类似于
的东西,即?快速重现示例:
> m1 <- m2 <- matrix(1:9, 3)
> diag(m1) <- 0
> which(m1 != m2, arr.ind = TRUE)
row col
[1,] 1 1
[2,] 2 2
[3,] 3 3
m1df1类似于:
df_diff <- list()
for (i in 1:ncol(df1))
{
df_diff[[i]] <- df1$id[df2[i] != df1[i]]
names(df_diff)[i] <- names(df1)[i]
}
df_diff您也可以使用df$让我知道。我一开始写的和你一模一样。最后,我修改了我的代码,使其更加明确。这很酷。我也喜欢显式编码风格,实际上我将其修改为df$let
df_diff <- list()
for (i in 1:ncol(df1))
{
df_diff[[i]] <- df1$id[df2[i] != df1[i]]
names(df_diff)[i] <- names(df1)[i]
}