簡體   English   中英

R Dplyr: How do I add columns from an ungrouped dataframe to a grouped dataframe and retain the grouping?

[英]R Dplyr: How do I add columns from an ungrouped dataframe to a grouped dataframe and retain the grouping?

我有一個主數據框( data ),其中包含有關購買的信息:姓名、年份、城市和其他一些變量:

Name Year City
N1   2018 NY
N2   2019 SF
N2   2018 SF
N1   2010 NY
N3   2020 AA

我使用new_data <- data %>% group by(Name) %>% tally(name = "Count")得到這樣的結果:

Name Count
N1   2
N2   2
N3   1

我的問題,最好使用 dplyr:

1)我現在如何將與 Name 對應的城市添加到new_data ,即:

Name Count City
N1   2     NY
N2   2     SF
N3   1     AA

2)如何將每個名稱的最早年份添加到new_data,即:

Name Count City Year
N1   2     NY   2010
N2   2     SF   2018
N3   1     AA   2020

似乎summarise可能更適合您,例如:

data %>%
  group_by(Name, City) %>%
  summarise(Count = n(),
            Year = min(Year))

Output:

# A tibble: 3 x 4
# Groups:   Name [3]
  Name  City  Count  Year
  <fct> <fct> <int> <int>
1 N1    NY        2  2010
2 N2    SF        2  2018
3 N3    AA        1  2020

雖然您也可以與City組合以將其保留在 output 中。

data.table的選項

library(data.table)
setDT(data)[, .(Count = .N, Year = min(Year)), .(Name, City)]

暫無
暫無

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

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