簡體   English   中英

用R中的distinct()dplyr刪除重復項

[英]remove duplicates with distinct() dplyr in R

使用dplyr庫
1.我需要從df1的mtcars表中創建2列的新對象
2.在df2中,從df1需要10到20
3.需要從兩列的df2中刪除重復項

df= mtcars %>% select(mpg,hp)
df2= slice(df,10:20)
distinct(df2, mpg,hp, .keep_all=TRUE)

在這里,distinct()不會在沒有任何重復的情況下打印df2,它與所有值相同。 也許它必須與列表類型有關。 另一個觀察結果是在df中將汽車名稱用作行名稱,但在df2中,行名稱只是數字值。

如何使用dplyr刪除兩個列的重復項?

我的理解是我們需要將不同的調用分開。 如果我們使用distinct(df2, mpg,hp, .keep_all=TRUE) ,則要求在同一行的兩列中都沒有重復的列,這在給定的數據集中不會發生,因此將返回所有內容。

如果我們首先返回hp沒有重復項的所有行,然后獲取該數據並僅返回mpg沒有重復項的行,則將獲得預期的結果。

library(dplyr)

df= mtcars %>% select(mpg,hp)
df2= slice(df,10:20)
df3<-distinct(df2, hp, .keep_all=TRUE)
df4<-distinct(df3, mpg, .keep_all=TRUE)

> df4
   mpg  hp
1 19.2 123
2 16.4 180
3 10.4 205
4 14.7 230
5 32.4  66
6 30.4  52
7 33.9  65

暫無
暫無

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

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