【发布时间】:2017-05-24 15:45:29
【问题描述】:
假设我有一个这样的数据集:
df <- data.frame(id = c(1, 1, 1, 2, 2),
classname = c("Welding", "Welding", "Auto", "HVAC", "Plumbing"),
hours = c(3, 2, 4, 1, 2))
即,
id classname hours
1 1 Welding 3
2 1 Welding 2
3 1 Auto 4
4 2 HVAC 1
5 2 Plumbing 2
我试图弄清楚如何以一种方式汇总数据,以便为每个 ID 提供他们所学课程的列表以及每节课的小时数。我希望这些都在一个列表中,这样我就可以在每个 ID 中保留一行。所以,我希望它返回:
id class.list class.hours
1 1 Welding, Auto 5,4
2 2 HVAC, Plumbing 1,2
我能够弄清楚如何让它返回 class.list。
library(dplyr)
classes <- df %>%
group_by(id) %>%
summarise(class.list = list(unique(as.character(classname))))
这给了我:
id class.list
1 1 Welding, Auto
2 2 HVAC, Plumbing
但我不确定如何将每个课程的小时数相加(class.hours)。
感谢您的帮助!
【问题讨论】: