【发布时间】:2020-07-14 15:30:16
【问题描述】:
我想为column2中的每个值计算column 1的值
我查看了group_by、summarize 和sum,但我不明白它的窍门。
我试过例如:
df <- data0 %>%
group_by(Room) %>%
summarize(count = n()) %>%
mutate(Timespend = sum(Time))
总结就是看一个房间被使用了多少次。现在我想看看 Room X 被使用了 100 次(我有这个),总时间为 300 小时
例子:
Activity Room Time Date
Math C123 3.50 2019/10/10
Physics C123 1.5 2019/10/10
English C123 2.5 2019/10/11
Math C124 3.20 2019/10/10
Physics C124 2.5 2019/10/10
English C124 1.5 2019/10/11
所有活动都发生在 C123 和 C124 房间,我想查看在给定房间内进行活动的总时间
所以是这样的:
Room Count Timespend
C123 3 7.5
C124 3 7.2
当然还有更多的房间和更多的约会,但这个示例给出了精髓。
输入:
structure(list(Activity = c("Math", "Physics", "English", "Math",
"Physics", "English"), Room = c("C123", "C123", "C123", "C124",
"C124", "C124"), Time = c(3.5, 1.5, 2.5, 3.2, 2.5, 1.5), Date = structure(c(1570665600,
1570665600, 1570752000, 1570665600, 1570665600, 1570752000), class = c("POSIXct",
"POSIXt"), tzone = "UTC")), row.names = c(NA, -6L), class = c("tbl_df",
"tbl", "data.frame"))
【问题讨论】:
-
不应该是7.5和7.2吗?
-
您在寻找
df %>% group_by(Room) %>% summarise(Count = n(), Timespend = sum(Time))吗? -
@StupidWolf 是的,应该。
-
@dc37 我用示例中的变量名更新了我尝试过的代码
-
您可以使用
group_by和summarise完成这一切:data0 %>% group_by(Room) %>% summarise(Timespend = sum(Time), Count = n())
标签: r