2016-11-29 4 views
0

Ich versuche, eine Schleife zu schreiben, die Jahr für Jahr Analyse auf meinem Datensatz durchführt. Ich bin neu in R, aber in anderen Programmiersprachen würde ich etwas ähnliches wie data2 $ YEAR_RISK +1 tun, aber das scheint nicht zu funktionieren. Mein Code ist unten:Jahr in einer for-Schleife inkrementieren

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

Das Ergebnis, das ich bekommen ist „Ab 2015 bis 2015 0 sank um -0,02“, wenn ich es will „bis 2015 0 von -0,02 sank von 2014“ sagen. Jede Hilfe wird sehr geschätzt.

+0

in Ihrem Code haben Sie 'Daten2 $ YEAR_RISK 1 [i]', sollte es 'Daten $ YEAR_RISK sein [ i] + 1 ' – denrou

Antwort

1

Einer der vielen guten Sache mit R ist, dass die meisten Funktionen sehr gut mit Vektoren arbeiten werden. In Ihrem Fall gibt es keine Notwendigkeit einer for Schleife ist, und man konnte nur schreiben:

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