【发布时间】:2015-06-01 18:24:17
【问题描述】:
我有一个跨越 20 年的每日温度测量数据框。我想计算每年数据系列中的年度范围(即最终有 20 个值,代表每年的范围)。示例数据:
begin_date = as.POSIXlt("1990-01-01", tz = "GMT")
dat = data.frame(dt = begin_date + (0:(20*365)) * (86400))
dat = within(dat, {speed = runif(length(dt), 1, 10)})
我正在考虑编写一个循环,该循环每年都会经过,然后计算范围,但希望有另一种解决方案。
我认为最好的方法是获得每年的最大值和最小值,然后从中计算范围。任何人都可以建议一种方法来做到这一点,而无需编写一个循环来逐年经历吗?
【问题讨论】:
-
应用或应用函数?我确信有一种很棒的功能性单线方法。
-
试试
library(dplyr);dat %>% group_by(year=year(dt)) %>% summarise= Max= max(speed), Min=min(speed))或者可能是dat %>% group_by(year=year(dt)) %>% summarise(Range= toString(round(range(speed),2)))
标签: r