r - 获取不带组的每 n 行的均值
问题描述
我的数据 (df) 与此类似
日期 | 地址1 | 地址2 |
---|---|---|
2015-01-01 | 2 | 8 |
2015-01-02 | 3 | 7 |
2015-01-03 | 7 | 3 |
2015-01-04 | 3 | 1 |
2015-01-05 | 9 | 4 |
2015-01-06 | 3 | 4 |
我想像这样在每个地址获得 3 天的平均值
日期 | 地址1 | 地址2 |
---|---|---|
2015-01-03 | 4 | 6 |
2015-01-06 | 5 | 3 |
我试图每三天提取一次日期,例如d<-date[seq(1,length(date),by=3)]
. 我使用dat<-rowsum(df[,-1],rep(1:6,each=3))
. 然后将整个数据帧除以 3 并组合d和dat。
我试图找到类似rowsum的rowmean作品,但没有成功。此外,滚动方式不适合我的情况,因为它对重叠的行进行平均(多次使用行)。
请帮助我改进我的方法。非常感谢。
解决方案
您可以创建每 3 行一组并取所有“地址”列的平均值 -
library(dplyr)
df %>%
mutate(date = as.Date(date)) %>%
group_by(grp = ceiling(row_number()/3)) %>%
summarise(date = last(date),
across(starts_with('address'), mean, na.rm = TRUE)) %>%
select(-grp)
# date address1 address2
# <date> <dbl> <dbl>
#1 2015-01-03 4 6
#2 2015-01-06 5 3
另一种选择是到cut
3 天,但它会给出组的开始日期。
df %>%
mutate(date = as.Date(date)) %>%
group_by(date = cut(date, '3 days')) %>%
summarise(across(starts_with('address'), mean, na.rm = TRUE))
推荐阅读
- python - 在 python 上使用 pdftotext 时创建文档时出现 Poppler 错误
- bash - 将 mogrify 与 Image Magick 一起使用时如何重命名图像?
- html - 如何删除网格布局底部的空白区域
- google-cloud-platform - How to create a new table with nested data in big query from another tables?
- javascript - Building a deeply nested boolean object with JavaScript
- json - No value associated with key CodingKeys with Unsplash API
- clang++ - "#include
" or not makes a performance difference on clang++ - html - i18next/i18n Change Language not working with the whole website
- php - WordPress 安全 - 子主题后门
- html - 如何将已经在浏览器中的图像放入表单