Die Summe der zurückgegebenen Liste: Fehler: Ungültiger 'type' (Liste) argument
Für mein script, das ich zurückkehren werde eine Reihe von Variablen in R, und nach der Spaltung bis mein Skript in mehrere Funktionen, die ich brauche, um wieder einige Listen, zusammen mit anderen Daten.
Ich weiß, ich kann mehrere Werte zurückgeben, indem c(value1, value2)
. Aber wie kann ich dies tun, wenn eines der Elemente, die zurückgegeben wird, ist eigentlich eine Liste?
Ich fahre listOne, aber wie es aussieht ist der Datentyp verändert wird bei der Rückkehr.
Wie kann ich get return die Liste ohne änderung der Art?
Hier ein Beispiel:
B <- function(){
listOne <- c(1,2,3,4,5,6)
testString <- "Test"
return(list(listOne, testString))
}
returnlist <- B()
Zuweisung der Variablen entsprechend der zurückgegebenen Liste:
copy.listOne <- returnlist# [1]
copy.testString <- returnlist[2]
Erwartete Ausgabe:
listOne <- c(1,2,3,4,5,6)
print(sum(listOne))
# [1] 21
Aktuelle Ausgabe:
print(sum(copy.listOne))
Error in print(sum(copy.listOne)) :
error in evaluating the argument 'x' in selecting a method for function 'print': Error in sum(copy.listOne) : invalid 'type' (list) of argument
verwenden
Danke! das war der trick, wenn Sie wollen, Schreibe es als Antwort werde ich es akzeptieren! Ich habe tatsächlich gelöscht werden, die andere Frage hatte ich bereits versucht, auf
Vielen Dank @Bas . In der Regel müssen Sie nur Bearbeiten Sie Ihre Vorherige Frage, anstatt es zu löschen und dann die Veröffentlichung einer neuen. Aber es ist jetzt in Ordnung 🙂 . Ich ll post als Antwort.
[[
, returnlist[[1]]
sollten Sie auch Bearbeiten Sie die Vorherige Frage...Danke! das war der trick, wenn Sie wollen, Schreibe es als Antwort werde ich es akzeptieren! Ich habe tatsächlich gelöscht werden, die andere Frage hatte ich bereits versucht, auf
list
vor, aber dann realisierte ich, dass es war, weil von verschiedenen Arten von Daten. Das ist, warum ich beschlossen, löschen Sie die alte Frage und schreiben Sie Sie vollständig. hoffe es war die richtige Vorgehensweise.Vielen Dank @Bas . In der Regel müssen Sie nur Bearbeiten Sie Ihre Vorherige Frage, anstatt es zu löschen und dann die Veröffentlichung einer neuen. Aber es ist jetzt in Ordnung 🙂 . Ich ll post als Antwort.
InformationsquelleAutor Bas | 2015-12-07
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim arbeiten mit Listen, die Sie verwenden müssen
[[
um die Teilmenge. In Ihrem Fall, wenn Sie die Funktion erstellen, die wie folgtmüssen Sie dann verwenden
[[
um Zugriff auf die Elemente der Liste.Wie Sie unten sehen können, alle funktionieren jetzt richtig:
InformationsquelleAutor LyzandeR