R. Error中的if语句的长度为零

时间:2016-12-06 23:05:23

标签: r

这是我的代码

for (i in 101:length(temp[,6]))
{ 
  if (   temp[i-1,5]< temp[i,5]  ) 
  print(temp[i,])

}

temp是我的数据

     000001.SZ.Open 000001.SZ.High 000001.SZ.Low 000001.SZ.Close 000001.SZ.Volume 000001.SZ.Adjusted
2016-01-01          11.99          11.99         11.99           11.99                0            9.81595
2016-01-04          12.00          12.03         11.23           11.33         67619700            9.27563
2016-01-05          11.27          11.57         11.15           11.40         79592300            9.33293
2016-01-06          11.42          11.56         11.39           11.53         61884700            9.43936
2016-01-07          11.41          11.41         10.91           10.94         20971300            8.95634
2016-01-08          11.21          11.29         10.90           11.12         89703300            9.10370

看起来像这样。我使用代码is.numeric

检查了数据
is.numeric(temp)
[1] TRUE

is.null

is.null(temp)
[1] FALSE

因此&#34; temp&#34;中的所有值有意义,能够计算。

我得到了结果

Error in if (temp[i - 1, 5] < temp[i, 5]) print(temp[i, ]) : 
  argument is of length zero 

请告诉我这段代码的问题在哪里。

1 个答案:

答案 0 :(得分:0)

您必须先从xts对象中提取数据

library(quantmod) 

xts_object <- getSymbols("000001.SZ", from= '2016-1-1', src="yahoo", auto.assign = F) 
temp <- coredata(xts_object)

for (i in 101:length(temp[,6]))
{ 
  if (   temp[i-1,5]<temp[i,5]  ) 
    print(temp[i,])
}