У меня есть следующие фиктивные данные:
df <- data.frame(Col1=c("cat","dog","man","man","cat","cat"),
Col2=c("cat","dog","dog","dog","dog","cat"))
Я хочу отфильтровать строки с одинаковыми именами в обоих столбцах. Другими словами, я хочу, чтобы в каждой строке оставались уникальные имена.
Итак, в моем примере у меня останется вывод, например:
Col1 Col2
man dog
man dog
cat dog
Есть ли решение для этого?
Мы можем использовать
library(dplyr)
df %>%
filter(Col1 != Col2)
Col1 Col2
1 man dog
2 man dog
3 cat dog
Или с помощью data.table
library(data.table)
setDT(df)[Col1 != Col2]
В base
:
subset(df, Col1 != Col2)
или
df[with(df, Col1 != Col2),]
результат:
# Col1 Col2
# 3 man dog
# 4 man dog
# 5 cat dog
Просто для завершения:
df %>% filter(!(Col1 == Col2))