Somme de la liste retournée: Erreur: invalid 'type' (liste) de l'argument
Pour mon script, je suis de retour d'un tas de variables dans R, et après la rupture de mon script en plus de fonctions dont j'ai besoin pour le retour de certaines listes, avec d'autres données.
Je sais que je peux retourner plusieurs valeurs par c(value1, value2)
. Mais comment puis-je le faire quand l'un des articles retournés est en fait une liste?
Je suis de retour listOne, cependant, il ressemble au type de données est modifié lors du retour.
Comment puis-je obtenir retour à la liste sans changer son type?
Voici un exemple:
B <- function(){
listOne <- c(1,2,3,4,5,6)
testString <- "Test"
return(list(listOne, testString))
}
returnlist <- B()
Affectation de variables selon la liste retournée:
copy.listOne <- returnlist# [1]
copy.testString <- returnlist[2]
Résultat attendu:
listOne <- c(1,2,3,4,5,6)
print(sum(listOne))
# [1] 21
De sortie réelle:
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
- utilisation
[[
,returnlist[[1]]
, vous devez également modifier la question précédente... - Merci! qui a fait le tour, si vous voulez l'écrire comme réponse, je vais l'accepter! En fait, j'ai supprimé l'autre question, j'avais déjà tenté d'utiliser
list
avant, mais ensuite j'ai réalisé que c'était à cause de différents types de données. C'est pourquoi j'ai décidé de supprimer la vieille question et de le réécrire complètement. espérons que c'était le bon déroulement de l'action. - Merci @Bas . Habituellement, il vous suffit d'éditer votre question précédente au lieu de la supprimer et ensuite de poster un nouveau. Mais c'est bien pour le moment 🙂 . Je ll post comme une réponse.
InformationsquelleAutor Bas | 2015-12-07
Vous devez vous connecter pour publier un commentaire.
Lorsque vous travaillez avec des listes, vous devez utiliser
[[
afin de sous-ensemble entre eux. Dans votre cas lorsque vous créez la fonction comme suitvous devez utiliser
[[
afin d'avoir accès aux éléments de la liste.Comme vous pouvez le voir ci-dessous tous les travaux désormais correctement: