假设我有一个这样的数据集:
df <- data.frame(id = c(1, 1, 1, 2, 2),
classname = c("Welding", "Welding", "Auto", "HVAC", "Plumbing"),
hours = c(3, 2, 4, 1, 2))
IE,
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)。
谢谢你的帮助!