簡體   English   中英

在 R 的另一列中保留具有不同值的行

[英]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 Rduplicated

df[!(duplicated(df)|duplicated(df, fromLast = TRUE)),]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM