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

Xav*_*amo 1 conditional r count

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

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
Run Code Online (Sandbox Code Playgroud)

所以,我基本上都需要算多少WDPS.ms值高于6的每个月份的的年度和每个站(STN),然后每气象站计算每月的平均天数

请问有关如何计算此值的建议(最好是在R中)?

Gre*_*gor 9

这非常简单.

使用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)
Run Code Online (Sandbox Code Playgroud)

对于每个站,这将返回年,月,测量的数量,大于6的测量的数量,以及它们的商(测量的比例大于6).

我不清楚你是否想要进一步总结(例如,崩溃年份),但它应该成为任何额外工作的良好起点.