2017-03-19 3 views
0

Ich habe eine Liste von Listen namens "Thalachbytsite" mit 4 Listen darin, und jede innere Liste hat mehrere hundert Elemente.R-Funktion wird nicht die Summe der einzelnen Elemente in Listen drucken

Ich möchte die Summe jeder inneren Liste zu bekommen, also habe ich versucht:

for (i in 1:length(thalachbysite)) { 
    sum(thalachbysite[[i]]) 
} 

Mein Ausgang obwohl völlig leer ist - sie die Eingabe ohne Fehler oder Warnungen akzeptiert, aber mein Bildschirm bleibt leer. Kann mir jemand erklären warum?

Antwort

3

Ich kann sehen, warum dies verwirrend ist, aber im Grunde for Schleifen NULL zurückgeben. Also, wenn du deine sum in einer Schleife, müssen Sie explizit drucken oder den Wert zurück, zum Beispiel Druck:

l <- list(x = 1:10, y = 11:20) 
for(i in 1:length(l)) {print(sum(l[[i]]))} 
[1] 55 
[1] 155 

Das heißt - eine for Schleife ist keine gute Lösung, in diesem Fall. Besser ist es, eine apply Funktion zu verwenden, wie lapply oder sapply:

lapply(l, sum) 
$x 
[1] 55 

$y 
[1] 155 

sapply(l, sum) 
    x y 
55 155 
Verwandte Themen