- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个“mydata”数据框,有 2 列:日期列和值列。我想将列附加到数据框中,这些列是各个窗口中“值”列的移动平均值。
目前 mydata 有 2 列
Column 1 - date
Column 2 - value
我希望第 3 列是值列的 2 周期移动平均值,第 4 列是值列的 3 周期移动平均值,等等。直到最后一列是9个周期的移动平均线
所以我想添加这些列:
Column 3 - SMA(value, 2)
Column 4 - SMA(value, 3)
Column 5 - SMA(value, 4)
Column 6 - SMA(value, 5)
Column 7 - SMA(value, 6)
Column 8 - SMA(value, 7)
Column 9 - SMA(value, 8)
Column 10 - SMA(value, 9)
这是代码
library(TTR)
date = seq(as.Date("2016-01-01"),as.Date("2016-01-10"),"day")
value =c(1,2,3,4,5,6,7,8,9,10)
mydata = data.frame (date, value)
z = zoo(value, date)
SMA(z, n=2)# this would be 3rd column of data frame
SMA(z, n=3)# this would be 4th column of data frame
等等......
谢谢。
最佳答案
您可以使用 zoo 中的
包:data.table
包和 rollmeanr
函数(或 rollmean
函数)来实现此目的
library(data.table)
library(zoo)
# method 1:
setDT(mydata)[, paste0('MA',2:9) := lapply(2:9, function(x) rollmeanr(value, x, fill = NA))][]
# method 2:
setDT(mydata)[, paste0('MA',2:9) := lapply(2:9, rollapplyr, data = value, mean, fill = NA)][]
两者都给出:
> mydata
date value MA2 MA3 MA4 MA5 MA6 MA7 MA8 MA9
1: 2016-01-01 1 NA NA NA NA NA NA NA NA
2: 2016-01-02 2 1.5 NA NA NA NA NA NA NA
3: 2016-01-03 3 2.5 2 NA NA NA NA NA NA
4: 2016-01-04 4 3.5 3 2.5 NA NA NA NA NA
5: 2016-01-05 5 4.5 4 3.5 3 NA NA NA NA
6: 2016-01-06 6 5.5 5 4.5 4 3.5 NA NA NA
7: 2016-01-07 7 6.5 6 5.5 5 4.5 4 NA NA
8: 2016-01-08 8 7.5 7 6.5 6 5.5 5 4.5 NA
9: 2016-01-09 9 8.5 8 7.5 7 6.5 6 5.5 5
10: 2016-01-10 10 9.5 9 8.5 8 7.5 7 6.5 6
为了响应您的评论,您可以通过链接类似的操作来添加 log
值:
setDT(mydata)[, paste0('MA',2:9) := lapply(2:9, function(x) rollmeanr(value, x, fill = NA))
][, paste0('ln',2:9) := lapply(.SD, log), .SDcols = 3:10]
给出:
> mydata
date value MA2 MA3 MA4 MA5 MA6 MA7 MA8 MA9 ln2 ln3 ln4 ln5 ln6 ln7 ln8 ln9
1: 2016-01-01 1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
2: 2016-01-02 2 1.5 NA NA NA NA NA NA NA 0.4054651 NA NA NA NA NA NA NA
3: 2016-01-03 3 2.5 2 NA NA NA NA NA NA 0.9162907 0.6931472 NA NA NA NA NA NA
4: 2016-01-04 4 3.5 3 2.5 NA NA NA NA NA 1.2527630 1.0986123 0.9162907 NA NA NA NA NA
5: 2016-01-05 5 4.5 4 3.5 3 NA NA NA NA 1.5040774 1.3862944 1.2527630 1.098612 NA NA NA NA
6: 2016-01-06 6 5.5 5 4.5 4 3.5 NA NA NA 1.7047481 1.6094379 1.5040774 1.386294 1.252763 NA NA NA
7: 2016-01-07 7 6.5 6 5.5 5 4.5 4 NA NA 1.8718022 1.7917595 1.7047481 1.609438 1.504077 1.386294 NA NA
8: 2016-01-08 8 7.5 7 6.5 6 5.5 5 4.5 NA 2.0149030 1.9459101 1.8718022 1.791759 1.704748 1.609438 1.504077 NA
9: 2016-01-09 9 8.5 8 7.5 7 6.5 6 5.5 5 2.1400662 2.0794415 2.0149030 1.945910 1.871802 1.791759 1.704748 1.609438
10: 2016-01-10 10 9.5 9 8.5 8 7.5 7 6.5 6 2.2512918 2.1972246 2.1400662 2.079442 2.014903 1.945910 1.871802 1.791759
关于r - 创建具有多列的数据框,这些列都是不同窗口的滚动平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37600907/
我有一个 RelativeLayout,我从 drawable 设置了背景。我能够将 RelativeLayout 的背景更改为另一个RadioButton 被选中。但是当它发生变化时我该如何给它一个
我正在尝试在 Google 的 Play 报亭应用中复制此动画: http://i.imgur.com/UuX1PRO.webm 我的布局看起来像这样: ... more
我一直在评估 Airflow 。我有一个用例,我有一个每小时运行一次的工作流,以获得每小时的数据聚合。另一个每天运行以获得相同的每日聚合。是否可以创建一个组合工作流,其中仅当所有小时聚合在过去一天都成
我有下一个结构: Activity 1: Activity 2: Form to add new item to the recycler View. RecyclerView
我只是想知道 JavaFx 中是否有任何简单的动 Canvas 局方法,例如 VBox 和 HBox。我希望我的应用程序在指定时间后更改 VBox 的背景颜色。但我意识到没有任何类似于 FillTra
我正在使用 Angular 4 动画在按钮上测试一个简单的淡入/淡出动画。我遇到的问题是,因为我使用的是 bool 值,所以没有任何东西被触发。从开发工具来看,它看起来像一个 .ng-animatin
有没有人在 SublimeREPL 中使用 irb 交换 pry 有任何运气?我很接近,我想。我没有收到错误,但是当我输入命令时也没有收到响应。每次我点击返回时,它的行为就像缓冲区被重置一样。 我正在
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
简而言之,我想缩放 View - 就像 Android Market 一样,当您单击“更多”按钮时,例如在“描述”上。 我发现,Android Market 具有以下结构的布局: > 64d
我似乎无法让它工作。 我正在尝试每天发送一个给定的文件,其名称类似于“file_{{ds_nodash}}.csv”。 问题是我似乎无法将此名称添加为文件名,因为它似乎无法使用。在电子邮件的正文或主题
当您调整窗口大小时, float 的 div 将按预期换行到下一行。但我真的很希望这种布局变化是动画化的。 编辑:顺便说一句,找到一个不依赖于 JQuery 的解决方案会很好。如果需要,我不介意编写自
我有一个复杂的数据处理管道,目前在单台机器上用 Python 实现。 管道是围绕处理属于一系列实现文档、页面、单词等的自定义类的对象而构建的。该管道中的大多数操作都是令人尴尬地并行的——它们处理单个文
我是一名优秀的程序员,十分优秀!