Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中的列上重复计算?_R_Loops_If Statement_Vector_Apply - Fatal编程技术网

如何在R中的列上重复计算?

如何在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

我被卡住了;我一直在玩循环(我知道,在R中不是一个好的选择),并在我的查询中使用了apply函数

我有一列数据记录了富时指数上的一天是盈利还是亏损。我想对显示该值的列的前3行求和并将其除以3。我想在
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)