r - 使用 tidyverse 对大型时间序列数据集有条件地聚合列
问题描述
在查看了其他一些问题并阅读了一些指南之后,我无法找到适合我的具体问题的解决方案。这是开始的数据示例:
data <- data.frame(
Date = sample(c("1993-07-05", "1993-07-05", "1993-07-05", "1993-08-30", "1993-08-30", "1993-08-30", "1993-08-30", "1993-09-04", "1993-09-04")),
Site = sample(c("1", "1", "1", "1", "1", "1", "1", "1", "1")),
Station = sample(c("1", "2", "3", "1", "2", "3", "4", "1", "2")),
Oxygen = sample(c("0.9", "0.4", "4.2", "5.6", "7.3", "4.3", "9.5", "5.3", "0.3")))
我想对嵌套在与日期相对应的站点内的站点的所有氧气值进行平均。我的数据集有几千行,就像在示例中一样,站的数量是奇数,并且日期的长度是不均匀的。
我正在寻找的输出是诸如“日期-> 站点-> 平均氧气”之类的列,在新版本的时间序列中完全不需要一个站列。
任何帮助将不胜感激!
解决方案
按'Site','Date'分组后,得到mean
'Oxygen'(将其转换为numeric
- 它是factor
列)
library(tidyverse)
data %>%
group_by(Site, Date) %>%
summarise(AverageOxygen = mean(as.numeric(as.character(Oxygen))))
# A tibble: 3 x 3
# Groups: Site [1]
# Site Date AverageOxygen
# <fct> <fct> <dbl>
#1 1 1993-07-05 3.97
#2 1 1993-08-30 5.2
#3 1 1993-09-04 2.55
推荐阅读
- python-3.x - 如何从 telnet 命令中选择倒数第二行
- c# - 如何在 Json 数据中制作
- android - Android - 为什么 RecyclerView 没有显示在设备上?
- java - Android Studio - 按下按钮时循环动画
- c - 有没有办法为 AVR gcc 中的引脚定义宏,以便我可以将它们作为变量访问?
- swift - Vapor 3 - 如何从 Leaf 模板表单填充模型的数组属性
- r - ggplot2轴标签点未按指定显示
- excel - Selenium 类型库找不到文件 driver.start "chrome","https://www.google.com"
- sql-server - SqlBulkCopy WriteToServer 期间出错 - 消息(“ALLOW_ENCRYPTED_VALUE_MODIFICATIONS”附近的语法不正确。))
- typescript - 如何通过提供不同的类型来覆盖静态方法