[英]R - Remove rows where the value in one column is found twice, once each for different values in another column
[英]Keeping rows with different values in another column in R
我有類似以下內容:
df<-data.frame(one=c(1, 1, 2, 3, 4, 5, 6, 7, 7), two=c(1010,1010,1011,1011,1011, 1012, 1012, 1013, 1013))
我想保留'two'中的值在'one'中具有不同值的行(即排除兩個==1013和兩個==1010)。 我能夠使用 setDT 和 uniqueN 做到這一點,但我正在尋找另一種驗證方式。 我敢肯定有一個簡單的方法就是找不到它。 謝謝!
library(dplyr)
df %>%
group_by(one) %>%
filter(!anyDuplicated(two))
我們可以group_by
'two' 並使用n_distinct
在 'one' 上創建一個邏輯條件,即不同元素的數量大於 1
library(dplyr)
df %>%
group_by(two) %>%
filter(n_distinct(one) > 1)
# A tibble: 5 x 2
# Groups: two [2]
# one two
# <dbl> <dbl>
#1 2 1011
#2 3 1011
#3 4 1011
#4 5 1012
#5 6 1012
或在base R
中duplicated
df[!(duplicated(df)|duplicated(df, fromLast = TRUE)),]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.