繁体   English   中英

在 R 中使用 != 比较一个 Dataframe 中的列

[英]Using != in R to compare Columns in one Dataframe

我试图在来自同一数据帧的 2 个不同列中找到不相等的值。

我正在使用

df %>%
  filter(column1 != column2)

然而,它正在返回一些似乎相等的值。 但是它不会返回与其对应的相同的值集

df %>%
  filter(column1 == column2)

两列都是双数据类型。

我应该找出不同的方法来比较它们吗?

!= 查询中显示相等值的示例

==!=是元素比较,即将 column1 的第一个值与 column2 的第一个值进行比较,将第二个值与第二个值进行比较,依此类推。 如果目的是将“column2”中的任何值与“column1”中的任何值返回匹配,请使用%in%

library(dplyr)
df %>%
    filter(column1 %in% column2)

相反将否定( !

df %>%
   filter(!column1 %in% column2)

关于 OP 的描述However it is returning some values that seem to be equal. Both columns are the double data type. . 列是双重的,这是一个棘手的情况,即如果是元素,它还必须考虑精度以使它们相等。 由于没有可重复的例子,它仅基于假设。 一种选择是round列值并进行元素比较

df %>% 
    filter(round(column1, 1) == round(column2, 1))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM