按组计算高于特定阈值的值

时间:2015-05-20 22:08:02

标签: r count conditional

我有一个巨大的历史气象站csv数据集(每日来自一个地区的一组气象站的风速数据)我需要计算每月的平均天数每个气象站的风速高于6米/秒。这些台站不包含相同年份的数据。数据集的示例如下所示。

head(windspeed_PR)

  STN    Year Month Day WDSP WDSP.ms
1 860110 1974     6  19  9.3   4.784
2 860110 1974     7  13 19.0   9.774
3 860110 1974     7  22  9.9   5.093
4 860110 1974     8  20  9.5   4.887
5 860110 1974     9  10  3.3   1.698
6 860110 1974    10  10  6.6   3.395

因此,我基本上需要计算的每个 WDPS.ms 值的数量是多少<6>站( STN ),然后计算每个meteo站每月的平均天数

请问如何计算这个值(最好是R)?

1 个答案:

答案 0 :(得分:8)

这很简单。

使用dplyr

library(dplyr)
windspeed_PR %>%
    group_by(STN, Year, Month) %>%
    summarize(n_days = n(),
              n_gt6 = sum(WDSP.ms > 6),
              p_gt6 = n_gt6 / n_days)

这将返回每个电台,年,月,测量次数,大于6的测量次数及其商数(测量值大于6的比例)。

我不清楚你是否想要进一步总结(例如,坍塌岁月),但它应该成为任何额外工作的良好起点。