R 筛选列中具有不同值的相同元素

R 筛选列中具有不同值的相同元素,r,dataframe,filter,R,Dataframe,Filter,如何在R中过滤以下数据帧: NR <- c("AW1","AW1","AW2","AW3","AW3","AW4","AW4") TYPE <- c("KA","MA","KA2","KA","KA","MA","KA") df <- data.frame(NR,TYPE) 因此,总体思路是在第一列中找到相同的值,但在第二列中只找到不同的值。使用dplyr: library(dplyr) df %>% group_by(NR) %>% filter(n_

如何在R中过滤以下数据帧:

NR <- c("AW1","AW1","AW2","AW3","AW3","AW4","AW4")

TYPE <- c("KA","MA","KA2","KA","KA","MA","KA")

df <- data.frame(NR,TYPE)
因此,总体思路是在第一列中找到相同的值,但在第二列中只找到不同的值。

使用dplyr:

library(dplyr)

df %>% 
group_by(NR) %>% 
filter(n_distinct(TYPE)>1)

您还可以使用
base
软件包获取所需的数据。frame:

df <- df[which(duplicated(df$NR) | duplicated(df$NR, fromLast=TRUE)), ]
df <- df[which(!duplicated(df$TYPE) | !duplicated(df$TYPE, fromLast=TRUE)), ]
df
## NR TYPE
## 1 AW1   KA
## 2 AW1   MA
## 6 AW4   MA
## 7 AW4   KA
df
df <- df[which(duplicated(df$NR) | duplicated(df$NR, fromLast=TRUE)), ]
df <- df[which(!duplicated(df$TYPE) | !duplicated(df$TYPE, fromLast=TRUE)), ]
df
## NR TYPE
## 1 AW1   KA
## 2 AW1   MA
## 6 AW4   MA
## 7 AW4   KA