r - 使用 R 比较数据框中的两列
问题描述
我正在尝试比较数据框中的两列以查找两列不相等的行。
我会做:
df %>% filter(column1 != column2)
这将为我提供两列中都存在值且不相等的情况(例如 column1 = 5,column2 = 6)
但是,它不会给我其中一个值为 NA 的情况(例如 column1 = NA,column2 = 7)
如何将后一种情况包含在过滤器功能中?
谢谢
解决方案
或使用xor
:
df %>% filter(a != b | xor(is.na(a), is.na(b)))
或者正如@thelatemail 提到的,您可以使用Base R:
df[which(df$a != df$b | xor(is.na(df$a), is.na(df$b))),]
或者正如@runr 提到的,您可以subset
在Base R 中尝试:
subset(df, a != b | xor(is.na(a), is.na(b)))
推荐阅读
- java - 如何解决“如果没有 @Provides-annotated 方法就无法提供”。- 科特林
- reactjs - 错误的 React 路由重定向
- c++ - 为什么在定义此 C++ 概念时会出现错误?
- c# - 起订量设置中的 DateTimeOffset 引发异常
- reactjs - 使用 ant 表单创建计算字段
- sqlite - 如何有条件地计算涉及多列总和的运行总计?
- asp.net-core - 使用neo4j数据库访问API时,30000毫秒内重试6次失败
- r - tidyverse:将字符串拆分为 data.frame 作为行
- clang-format - 有没有办法使用 clang 格式在初始化列表中对齐逗号?
- python - flask-socketio 中的 Join_room,TypeError:'int' 对象不可下标