如何在R中的列上重复计算?
我被卡住了;我一直在玩循环(我知道,在R中不是一个好的选择),并在我的查询中使用了apply函数 我有一列数据记录了富时指数上的一天是盈利还是亏损。我想对显示该值的列的前3行求和并将其除以3。我想在如何在R中的列上重复计算?,r,loops,if-statement,vector,apply,R,Loops,If Statement,Vector,Apply,我被卡住了;我一直在玩循环(我知道,在R中不是一个好的选择),并在我的查询中使用了apply函数 我有一列数据记录了富时指数上的一天是盈利还是亏损。我想对显示该值的列的前3行求和并将其除以3。我想在nrow(DaysDifference)中一直重复这一点 请在下面找到一个可行的例子 > FTSE[1:10,] FTSE.Open FTSE.High FTSE.Low FTSE.Close FTSE.Volume FTSE.Adjusted 2007-01-01
nrow(DaysDifference)
中一直重复这一点
请在下面找到一个可行的例子
> FTSE[1:10,]
FTSE.Open FTSE.High FTSE.Low FTSE.Close FTSE.Volume FTSE.Adjusted
2007-01-01 6220.8 6220.8 6220.8 6220.8 0 6220.8
2007-01-02 6220.8 6312.5 6220.8 6310.9 1074946500 6310.9
2007-01-03 6310.9 6322.0 6296.0 6319.0 1606892700 6319.0
2007-01-04 6319.0 6319.0 6261.0 6287.0 1902875600 6287.0
2007-01-05 6287.0 6287.0 6220.1 6220.1 1622439300 6220.1
2007-01-08 6220.1 6246.0 6187.0 6194.2 1326700900 6194.2
2007-01-09 6194.2 6218.5 6190.4 6196.1 2143699600 6196.1
2007-01-10 6196.1 6196.1 6142.0 6160.7 1881991200 6160.7
2007-01-11 6160.7 6233.1 6130.2 6230.1 2147062400 6230.1
2007-01-12 6230.1 6247.6 6204.3 6239.0 1899868200 6239.0
DaysDifference <- FTSE$FTSE.Open - FTSE$FTSE.Close
colnames(DaysDifference) <- c('FTSE.Direction')
DaysDifference$PosInd<-ifelse(DaysDifference$FTSE.Direction>0,1,0)
# Identifys if D3P is > and if it is assigns 1, if not assigns 0
DaysDifference$TestCol<- for (i in (nrow(DaysDifference)-3))
{sum(DaysDifference$PosInd[i:(i+2)]/3)
}
富时[1:10]
富时指数。开放富时指数。高富时指数。低富时指数。收盘富时指数。成交量富时指数。调整
2007-01-01 6220.8 6220.8 6220.8 6220.8 0 6220.8
2007-01-02 6220.8 6312.5 6220.8 6310.9 1074946500 6310.9
2007-01-03 6310.9 6322.0 6296.0 6319.0 1606892700 6319.0
2007-01-04 6319.0 6319.0 6261.0 6287.0 1902875600 6287.0
2007-01-05 6287.0 6287.0 6220.1 6220.1 1622439300 6220.1
2007-01-08 6220.1 6246.0 6187.0 6194.2 1326700900 6194.2
2007-01-09 6194.2 6218.5 6190.4 6196.1 2143699600 6196.1
2007-01-10 6196.1 6196.1 6142.0 6160.7 1881991200 6160.7
2007-01-11 6160.7 6233.1 6130.2 6230.1 2147062400 6230.1
2007-01-12 6230.1 6247.6 6204.3 6239.0 1899868200 6239.0
DaysDifference看看
zoo
软件包
library(zoo)
rollmean(DaysDifference$FTSE.Direction > 0, k = 3, na.pad = TRUE)