这是我的数据集的示例。我想每 10 秒根据时间(即 ts)计算一次 bin 平均值。您能否提供一些提示以便我可以继续?
就我而言,我想平均每 10 秒的时间 (ts) 和 Var。比如我会得到Var和ts从0到10秒的平均值;我将得到另一个 Var 和 ts 从 11 到 20 秒的平均值,等等。
df = data.frame(ts = seq(1,100,by=0.5), Var = runif(199,1, 10))
我可以使用 R 中的任何函数或库来完成此任务吗?
有很多方法可以计算分箱平均值:aggregate
,by
,与包dplyr
, data.table
,可能与zoo
当然还有其他时间序列包......
library(dplyr)
df %>%
group_by(interval = round(df$ts/10)*10) %>%
summarize(Var_mean = mean(Var))
# A tibble: 11 x 2
interval Var_mean
<dbl> <dbl>
1 0 4.561653
2 10 6.544980
3 20 6.110336
4 30 4.288523
5 40 5.339249
6 50 6.811147
7 60 6.180795
8 70 4.920476
9 80 5.486937
10 90 5.284871
11 100 5.917074
这就是 dplyr 方法,了解它和 data.table 如何让您命名中间变量,从而保持代码干净易读。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)