在查看了其他一些问题并阅读了一些指南后,我无法找到适合我的具体问题的解决方案。以下是要开始的数据示例:
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")))
我想要对嵌套在与某个日期相对应的站点内的站点的所有氧气值进行平均。我的数据集有几千行,就像示例中一样,车站数量不均匀,日期长度也不均匀。
我正在寻找的输出是诸如“日期 -> 站点 -> 平均氧气”之类的列,在新版本的时间序列中完全不需要站列。
任何帮助将不胜感激!
最佳答案
按“站点”、“日期”分组后,得到mean
“氧气”(将其转换为 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
关于r - 使用 tidyverse 对大型时间序列数据集有条件聚合列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54771596/