第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用dplyr刪除重復(fù)的行

使用dplyr刪除重復(fù)的行

SMILET 2019-10-08 11:20:22
我有一個這樣的data.frame-set.seed(123)df = data.frame(x=sample(0:1,10,replace=T),y=sample(0:1,10,replace=T),z=1:10)> df   x y  z1  0 1  12  1 0  23  0 1  34  1 1  45  1 0  56  0 1  67  1 0  78  1 0  89  1 0  910 0 1 10我想刪除基于前兩列的重復(fù)行。預(yù)期產(chǎn)量-df[!duplicated(df[,1:2]),]  x y z1 0 1 12 1 0 24 1 1 4我正在尋找使用dplyr包的解決方案。
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻1794條經(jīng)驗 獲得超8個贊

注意:dplyr現(xiàn)在包含distinct用于此目的的功能。


原始答案如下:


library(dplyr)

set.seed(123)

df <- data.frame(

  x = sample(0:1, 10, replace = T),

  y = sample(0:1, 10, replace = T),

  z = 1:10

)

一種方法是分組,然后僅保留第一行:


df %>% group_by(x, y) %>% filter(row_number(z) == 1)


## Source: local data frame [3 x 3]

## Groups: x, y

## 

##   x y z

## 1 0 1 1

## 2 1 0 2

## 3 1 1 4

(在dplyr 0.2中,您將不需要啞z變量,并且只需要編寫即可row_number() == 1)


我也一直在考慮添加一個slice()功能,如:


df %>% group_by(x, y) %>% slice(from = 1, to = 1)

或者,也許可以通過變種來unique()選擇要使用的變量:


df %>% unique(x, y)


查看完整回答
反對 回復(fù) 2019-10-08
?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

這是使用的解決方案dplyr 0.3。


library(dplyr)

set.seed(123)

df <- data.frame(

  x = sample(0:1, 10, replace = T),

  y = sample(0:1, 10, replace = T),

  z = 1:10

)


> df %>% distinct(x, y)

    x y z

  1 0 1 1

  2 1 0 2

  3 1 1 4

更新為dplyr 0.5


dplyr版本0.5的默認(rèn)行為是distinct()僅返回...參數(shù)中指定的列。


為了獲得原始結(jié)果,您現(xiàn)在必須使用:


df %>% distinct(x, y, .keep_all = TRUE)


查看完整回答
反對 回復(fù) 2019-10-08
?
月關(guān)寶盒

TA貢獻1772條經(jīng)驗 獲得超5個贊

大多數(shù)時候,最好的解決方案是使用distinct()dplyr,正如已經(jīng)建議的那樣。


但是,這是另一種使用slice()dplyr函數(shù)的方法。


# Generate fake data for the example

  library(dplyr)

  set.seed(123)

  df <- data.frame(

    x = sample(0:1, 10, replace = T),

    y = sample(0:1, 10, replace = T),

    z = 1:10

  )


# In each group of rows formed by combinations of x and y

# retain only the first row


    df %>%

      group_by(x, y) %>%

      slice(1)

與使用distinct()功能的區(qū)別

此解決方案的優(yōu)點是,它可以使從原始數(shù)據(jù)幀中保留哪些行變得明確,并且可以與該arrange()函數(shù)很好地配對。


假設(shè)您有客戶銷售數(shù)據(jù),并且希望為每個客戶保留一條記錄,并且希望該記錄成為他們最近一次購買的記錄。然后,您可以編寫:


customer_purchase_data %>%

   arrange(desc(Purchase_Date)) %>%

   group_by(Customer_ID) %>%

   slice(1)


查看完整回答
反對 回復(fù) 2019-10-08
  • 3 回答
  • 0 關(guān)注
  • 1763 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號