gpt4 book ai didi

带有 dplyr 和 magrittr 的 rollmean

转载 作者:行者123 更新时间:2023-12-04 03:11:27 37 4
gpt4 key购买 nike

鉴于以下数据:

    set.seed(1)
data <- data.frame(o=c('a','a','a','a','b','b','b','b','c','c','c','c'), t=c(1,2,3,4,1,2,3,4,1,2,3,4), u=runif(12), v=runif(12))
data
o t u v
1 a 1 0.26550866 0.6870228
2 a 2 0.37212390 0.3841037
3 a 3 0.57285336 0.7698414
4 a 4 0.90820779 0.4976992
5 b 1 0.20168193 0.7176185
6 b 2 0.89838968 0.9919061
7 b 3 0.94467527 0.3800352
8 b 4 0.66079779 0.7774452
9 c 1 0.62911404 0.9347052
10 c 2 0.06178627 0.2121425
11 c 3 0.20597457 0.6516738
12 c 4 0.17655675 0.1255551

我想计算由 o 列定义的每组 u 的滚动平均值(包动物园)。滚动平均值的阶数由 t 设置。滚动平均值应作为新列添加到 data.frame 中。

我想使用 magrittr 和 dplyr。我试过
    data %>%
group_by(o) %>%
sort(t) %>%
select(u) %>%
rollmean(3) %>%
rbind

但这行不通。是否可以用 magrittr 和 dplyr 来完成,还是我必须一步一步地完成?
o 和 t 的值在我的真实数据中是可变的。

如何填充前两行?

最佳答案

可能这有帮助:

library(dplyr)
library(zoo)
data %>%
group_by(o) %>%
mutate(rM=rollmean(u,3, na.pad=TRUE, align="right"))
如果你想对两列都做, uv
fun1 <- function(x) rollmean(x, 3, na.pad=TRUE, align="right")
data %>%
group_by(o) %>%
mutate_each(funs(fun1), u, v)

关于带有 dplyr 和 magrittr 的 rollmean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25809195/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com