2016-04-30 12 views
0

I mit einem Wert fange, sagen 10 und dann wollen eine Nummer, um es hinzuzufügen (aus einer Matrix/Vektor), einmal dieses Ergebnis zu erzielen, möchte ich das hinzufügen nächste Zahl in der Matrix zu diesem Ergebnis und so weiter.Wert auf einen früheren Wert mit for-Schleife Hinzufügen

numbers <- c(1:10) 
matrix2 <- matrix("", 1,11) 
matrix2 <- as.numeric(matrix2) 

aggregate <- for (i in length(matrix2 +1)) { 
     matrix2[1] <- 10 
     matrix2[1+i] <- matrix2[1] + numbers[i] 
    } 

Dafür ich ein Ergebnis von NULL erhalten

Was ich erwartet hatte war:

 10 
10+1 = 11 
11+2 = 13 
13+3 = 16 
16+4 = 20 
20+5 = 25 

Also nach jeder Iteration das vorherige Ergebnis die nächste Nummer in den „Zahlen“ haben würde Vektor hinzugefügt.

Irgendwelche Vorschläge?

+3

Warum nicht '10 + Cumsum (Zahlen)'? – Heroka

+0

Funktioniert gut! Obwohl ich ein wenig verwirrt war, warum meine Schleife nicht funktioniert ... –

+0

Sie könnten prüfen, in Matrix2, wie das ist, wo Sie Zahlen innerhalb Ihrer Schleife zuweisen .... Aber im Allgemeinen sind For-Schleifen nicht der Weg in R gehen. – Heroka

Antwort

0
numbers <- c(1:10) 
matrix2 <- matrix("", 1,11) 
matrix2 <- as.numeric(matrix2) 

matrix2[1] <- 10 
for (i in 2:length(matrix2 +1)) { 
    matrix2[i] <- matrix2[i-1] + numbers[i-1] 
} 

Sie benötigen die for-Schleife einen Start- und einen Endpunkt zu geben, und die Art, wie Sie den Vektor indiziert hatte, war nicht das Ergebnis gehen, um Ihnen angezeigt hatte.

+0

Danke für die Abholung! –

Verwandte Themen