簡體   English   中英

使用dplyr分組,連接並返回3列

[英]Group, concatenate and return 3 columns using dplyr

以下是一些數據:

data = data.frame(
    name=c("bob", "bob", "mary", "ann", "ann", "ann"),
    colour=c("blue", "blue", "yellow", "green", "green", "blue"),
    number=c(2,2,3,4,4,4))

data

data %>% 
    group_by(name) %>% 
    summarise(colours = paste(unique(colour), collapse = ' '))

如何如上所述將這些數據分組,但保留列number data ,所有Bob的遺囑= 2,所有Mary的遺囑= 3,所有Ann的遺囑=4。因此,對於每個唯一的name值,我只需要返回每個數字的第一個實例。

預期產量:

 name     colours number
1  ann green blue      4
2  bob       blue      2
3 mary     yellow      3

您有2個選擇:

  1. 將數字添加到group_bygroup_by(name, number) 這通常是好的,因為如果您假設每個名稱恰好對應一個數字是不正確的,那么您將看到奇數組合。
  2. 在你的總數summarise ,挑選您想要的值,例如, number = first(number)作為內部的補充發言summarise 這樣可以提高計算效率,但是如果您假設每個名稱恰好對應一個數字是不正確的,那么您將得到意想不到的結果,或者您可能永遠不會注意到。

暫無
暫無

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

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