R-如何根据两列值之间的逻辑参数删除行

R-如何根据两列值之间的逻辑参数删除行,r,dataframe,duplicates,row,R,Dataframe,Duplicates,Row,我想知道如何删除两个不同列中的值不相同的行。下面是一个例子来说明我的问题: test.1 <- c("A", "B", "C", "D") test.2 <- c("2009-02", "2009-04", "2010-01", "2011-02") test.3 <- c("2009-02", "2009-08", "2010-01", "2013-06") test.data <- data.frame(test.1, test.2, test.3) 我想删除tes

我想知道如何删除两个不同列中的值不相同的行。下面是一个例子来说明我的问题:

test.1 <- c("A", "B", "C", "D")
test.2 <- c("2009-02", "2009-04", "2010-01", "2011-02")
test.3 <- c("2009-02", "2009-08", "2010-01", "2013-06")
test.data <- data.frame(test.1, test.2, test.3)
我想删除test.2和test.3不相等的行,即第二行和第四行。我尝试了复制函数,因为我发现

test.data.2 = test.data[!duplicated(test.data[,c('test.2', 'test.3')]),]
将删除test.2=test.3的行。因此,我删除“!”如下所示:

test.data.2 = test.data[duplicated(test.data[,c('test.2', 'test.3')]),]
但它不起作用。你还有其他建议吗?
非常感谢您的帮助

我们可以使用
子集
基本R

subset(test.data, test.2 == test.3)

或者使用
dplyr

library(dplyr)
test.data %>%
      slice(which(test.2 == test.3))

我们可以使用
subset
base R

subset(test.data, test.2 == test.3)

或者使用
dplyr

library(dplyr)
test.data %>%
      slice(which(test.2 == test.3))

使用
tidyverse

library(tidyverse)

test.data %>%
  filter(test.2 == test.3)
或基准R:

test.data[test.data$test.2 == test.data$test.3,]

使用
tidyverse

library(tidyverse)

test.data %>%
  filter(test.2 == test.3)
或基准R:

test.data[test.data$test.2 == test.data$test.3,]

您可以创建一个新的数据框,其中只有
test.2
test.3
中的值相同:

test.data.2 <- test.data[test.data$test.2 == test.data$test.3,]
test.data.2 <- test.data[-which(test.data$test.2 != test.data$test.3),]

test.data.2您可以创建一个新的数据框,其中只有
test.2
test.3
中的值相同:

test.data.2 <- test.data[test.data$test.2 == test.data$test.3,]
test.data.2 <- test.data[-which(test.data$test.2 != test.data$test.3),]
test.data.2