全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
368 0
2022-11-10

假设我有一个数据框,其中每行代表不同的一天。我有一个包含日期的列,以及一个每天感兴趣的值的列。例如,我可能会创建一个这样的数据帧:


DF <-data.frame(日期= C( “9/1”, “9/2”, “9/3”, “9/4”, “9/5”, “9/6”),值= C(2,3,5,8,11,12))


我想创建一个额外的列(为方便起见,名为“avg”),它平均过去3天的值,包括那天。换句话说,我希望上面创建的数据框添加一个看起来大致如下的附加列:


平均


NA


NA


3.33


5.33


8


10.33


我怎么能在R中这样做?如果可能的话,我也希望在7天之前完成此操作,但我认为该代码与此问题的代码非常相似。


解决办法:> library(zoo)

> DF$avg <- c(NA, NA, rollmean(DF$value, 3))

> DF

date value avg

1 9/1 2 NA

2 9/2 3 NA

3 9/3 5 3.333333

4 9/4 8 5.333333

5 9/5 11 8.000000

6 9/6 12 10.333333

你也可以使用fill和align参数


rollmean(DF$value, 3, fill = NA, align = "right")

也可使用 rollmeanr(df$value, 3, fill = NA)


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群