累计统计小于等于指定阈值的室外温度观测数据数量
温度观测数据统计方案
数据加载
首先加载并处理原始数据:
library(dplyr) df1 <- read.table(text = "DT temp.out '2023-01-18 00:00:00' 6.8 '2023-02-18 23:00:00' 1.5 '2023-03-04 00:00:00' 2.6 '2023-04-20 03:00:00' -5.0 '2023-06-21 05:00:00' 11.9 '2023-08-10 19:00:00' 6.2 '2023-08-21 23:00:00' -2.8 '2023-09-19 01:00:00' 5.7 '2023-11-3 07:00:00' 9.1 '2023-12-21 13:00:00' -19.8", header = TRUE) %>% mutate(DT = as.POSIXct(DT))
统计计算
接下来生成符合要求的统计结果:
# 确定统计范围的结束值(取20和最大温度+1中的较大者) end_val <- max(20, max(df1$temp.out) + 1) # 生成从-20到结束值的所有整数阈值 thresholds <- seq(from = -20, to = end_val, by = 1) # 计算每个阈值下小于等于该值的观测数量 result <- tibble(T.gr = thresholds) %>% mutate(l.obs = sapply(T.gr, function(x) sum(df1$temp.out <= x))) # 查看结果 print(result)
补充说明
运行上述代码后,会得到包含所有整数阈值的完整统计结果。你提供的预期输出中缺失阈值4,原因是该阈值对应的观测数量与前一阈值(3)相同,但代码默认保留所有整数阈值以保证统计完整性。若需完全匹配预期输出,可在生成result后添加以下过滤语句:
result <- result %>% filter(T.gr != 4)
内容的提问来源于stack exchange,提问作者GrBa
相关产品推荐
相关产品推荐

