r - 计算一个变量在一个月内的数量
问题描述
如果我有每个日期的频率,我如何计算每个唯一月份的频率总和?
例子:
前:
df <- data.frame(
Date = c('2010-01-15','2010-01-25','2010-02-12','2010-03-15','2010-03-11','2011-01-12'),
Freq = c(1,1,1,1,0,1)
)
后:
df_output = data.frame(
Month = c(1,2,3,13),
Total = c(2,1,1,1)
)
注意:我不想将不同年份的同一月份相加,我希望将它们分开对待。因此示例中的月份为 13。
感谢您的任何帮助
解决方案
一个更简单的选择是转换为年月并按总和进行分组(如果需要,可以通过从“年”中减去来获得first
“月”)
library(dplyr)
library(zoo)
library(lubridate)
df %>%
group_by(yearmon = as.yearmon(Date)) %>%
summarise(n = sum(Freq)) %>%
transmute(year = year(yearmon),
Month= 12 * (year - first(year)) + month(yearmon), n, year = NULL )
# A tibble: 4 x 2
# Month n
# <dbl> <dbl>
#1 1 2
#2 2 1
#3 3 1
#4 13 1
推荐阅读
- python - 如何让我的打印声明只打印在一行上?
- r - 在反应元素中更新私有但不更新 UI
- algorithm - Bellman-Ford 路由算法,怎么会这样呢?
- spring-boot - 你能用列表吗
和@OneToMany 同时在实体中? - r - 将图像上传到 R 闪亮可下载到 pdf
- python - 如何将蓝牙插座连接到安卓手机?
- excel - 如何在 Excel 中映射对象?
- if-statement - 合并两个 IF 时 Google Sheet 输出错误
- javascript - 如果没有箭头函数(常规函数),我将如何重写它
- flutter - 使用 http 从 API 解析数据的问题