我正在尝试编写一个循环,对我的数据集执行逐年分析。我是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”。非常感谢任何帮助。
答案 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))