2017-03-23 4 views
1

Ich versuche, einen Vektor pred_pos mit dem Ergebnis pred bei jeder Iteration der for-Schleife zu füllen. Mein Vektor pred_pos ist jedoch nie gefüllt. Das Objekt my_vec ist eine Liste großer Zeichenvektoren, von denen ich nicht glaube, dass sie für dieses Problem reproduziert werden müssen, da es sich höchstwahrscheinlich um einen grundlegenden Indexierungsfehler handelt. Ich muss nur wissen, wie man einen Vektor aus dieser for-Schleife bevölkert. Ich kann keine Lösung finden.Füllen eines Vektors mit einer for-Schleife

pred_pos <- vector("numeric" , 2) 


for(i in my_vec) { 
     for(r in pred_pos) { 
     inserts <- sapply(i, function(n) { n <- cond_probs_neg[n] }) 
     pred <- sum(unlist(inserts) , na.rm = T) * apriori_neg 
     pred_pos[r] <- pred 
     } 
     } 

Antwort

2

Unter der Annahme, dass der Rest des Codes funktioniert, gibt es keine Notwendigkeit, explizit Zustand ist:

pred_pos <- vector("numeric" , 2)

, die einen numerischen Vektor der Länge zwei erzeugt. Sie sollten in der Lage sein, zu schreiben:

pred_pos <- vector()

Wenn Sie nun auf den Vektor anhängen möchten, können Sie einfach verwenden:

vector[length(vector)+1] <- someData

ich Ihren Code glauben sollte funktionieren, wenn es eingestellt wird :

pred_pos <- vector() 

for(i in my_vec) { 
     inserts <- sapply(i, function(n) { n <- cond_probs_neg[n] }) 
     pred <- sum(unlist(inserts) , na.rm = T) * apriori_neg 
     pred_pos[length(pred_pos)+1] <- pred 
} 
+0

Danke. Es funktioniert tatsächlich perfekt, wenn ich die for (r in pred_pos) -Schleife ganz weglasse und einfach die erste for-Schleife benutze. – Seanosapien

+0

Guter Punkt - es gibt keine Notwendigkeit für diese Schleife! –

+0

Ja. Nette Verwendung des Indexzählers auch, um den Vektor zu füllen. Danke noch einmal. – Seanosapien

Verwandte Themen