r - 如何在 R 的数据框中选择两列?
问题描述
想象一下,我有 2 个 df,分别命名为 A 和 B。对于 df A 的每一行,我想检查 B df 中是否存在相应的行。在下面的示例中,代码将只打印一个答案 TRUE,因为 df A 中的最后一行与 df B 中的最后一行不匹配。
A <- NULL
B <- NULL
A <- data.frame(A = c('a','b','c','d','e'), B = c('1','2','3','4','5'))
B <- data.frame(A = c('a','b','c','d','f'), B = c('1','2','3','4','5'))
i <- 0
for(i in 1: length(A$A))
{
point <- A[i,]
if(!point %in% B[which[1:2]])
print(TRUE)
}
解决方案
您可以检查两个表的反连接是否包含任何行(即公共列上的两个数据框之间是否存在任何不相等的行),TRUE
如果是则打印
if(diff_rows <- nrow(dplyr::anti_join(A, B)) > 0) print(diff_rows)
# Joining, by = c("A", "B")
# [1] TRUE
# Warning message:
# Column `A` joining factors with different levels, coercing to character vector
如果你想忽略警告,你可以清理一些输出
if(diff_rows <- nrow(suppressWarnings(dplyr::anti_join(A, B, by = names(A)))) > 0)
print(diff_rows)
# [1] TRUE
推荐阅读
- visual-studio - 无法创建新的 .Net Core 控制台应用程序
- delphi - Delphi 10.2 TWebBrowser:文档属性在哪里?
- python-3.x - 我收到 ALB Lambda 错误 - 502 Bad Gateway
- karate - 空手道:将 jsonPath 发送到另一个功能时,“设置”功能看不到该 jsonPath
- php - PHP Mailer 发送数据不被接受的错误
- clickhouse - ClickHouse 查询行顺序行为
- php - 如何强制插入 Alice 灯具?
- spring-webflow - 支持通过 Spring Cloud Gateway 代理 SOAP/XML 端点
- python - 按多个字段分组并计算值之间的差异
- spring - Cloud Foundry 无法识别@Transactional