Groupby 一列并找到它的总和和计数
Posted
技术标签:
【中文标题】Groupby 一列并找到它的总和和计数【英文标题】:Groupby a column and find its sum and count 【发布时间】:2020-07-11 09:34:05 【问题描述】:背景: 我有一个数据集,df,
Date Duration
1/2/2020 5:00:00 PM 20
1/2/2020 5:30:01 PM 30
1/2/2020 6:00:00 PM 10
1/5/2020 7:00:01 AM 5
1/6/2020 8:00:00 AM 2
1/6/2020 9:00:00 AM 8
所需的输出:
Date Total_Duration Count
1/2/2020 60 3
1/5/2020 5 1
1/6/2020 10 2
输入:
structure(list(Date = structure(1:6, .Label = c("1/2/2020 5:00:00 PM",
"1/2/2020 5:30:01 PM", "1/2/2020 6:00:00 PM", "1/5/2020 7:00:01 AM",
"1/6/2020 8:00:00 AM", "1/6/2020 9:00:00 AM"), class = "factor"),
Duration = c(20L, 30L, 10L, 5L, 2L, 8L)), class = "data.frame", row.names = c(NA,
-6L))
我尝试过的:
library(dplyr)
df %>% group_by(Date) %>% add_tally() %>%
summarize(Duration)
任何指导都会有所帮助。
【问题讨论】:
【参考方案1】:使用dmy_hms
(假设格式为DD/MM/YYYYY HH::MM:SS
)转换为'DateTime'后,我们可以只从'Date'中获取Date
,将其用作分组变量并获取'的sum
Duration' 和 'Count' 作为n()
library(dplyr)
library(lubridate)
df %>%
group_by(Date = as.Date(dmy_hms(Date))) %>%
summarise(Total_Duration = sum(Duration), Count = n())
# A tibble: 3 x 3
# Date Total_Duration Count
# <date> <int> <int>
#1 2020-02-01 60 3
#2 2020-05-01 5 1
#3 2020-06-01 10 2
【讨论】:
以上是关于Groupby 一列并找到它的总和和计数的主要内容,如果未能解决你的问题,请参考以下文章
MySQL sum,用 group by 和 join 计数
Pandas DataFrame Groupby 两列并获取计数
Groupby 一列并根据 R 中的字符串向量重新排列另一列字符串