2016-11-29 239 views
0

我正在嘗試編寫一個循環,對我的數據集執行逐年分析。我是R新手,但在其他編程語言中,我會做類似於data2 $ YEAR_RISK + 1的工作,但這似乎並不奏效。我的代碼如下:for循環中遞增年份

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年的-0.02下降2015年0」。任何幫助深表感謝。

+0

在代碼中,你有'$ DATA2 +1 YEAR_RISK [I]',它應該是'數據$ YEAR_RISK [我] + 1' – denrou

回答

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))