在for循环中增加year

时间:2016-11-29 20:38:24

标签: r

我正在尝试编写一个循环,对我的数据集执行逐年分析。我是R的新手,但在其他编程语言中,我会做类似于data2 $ YEAR_RISK +1的事情,但这似乎不起作用。我的代码如下:

for(i in 1:nrow(data2))
data2$Results[i] <-
  ifelse(data2$Change[i] < 0, print(
    paste(
      "From", data2$YEAR_RISK [i], "to", data2$YEAR_RISK +1[i],     data2$RESOURCE_UTILIZATION_BAND[i], "decreased by", data2$Change[i]
    )
  ), ifelse(data2$Change[i] > 0 ,print(
    paste(
      "From", data2$YEAR_RISK[i], "to", data2$YEAR_RISK +1[i],   data2$RESOURCE_UTILIZATION_BAND[i], "increased by", data2$Change[i]
    )
  ),"0"))  

我得到的结果是“从2015年到2015年0减少-0.02”我想说“从2014年到2015年0减少-0.02”。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

关于R的许多好处是大多数函数都能很好地处理向量。在您的情况下,不需要for循环,您可以写:

data2$Results <- paste("From", data2$YEAR_RISK, "to", data2$YEAR_RISK + 1, data2$RESSOURCE_UTILIZATION_BAND, ifelse(data2$Change == 0, "0", ifelse(data2$Change < 0, "decreased by", "increased by"), data2$Change))