Pourquoi j'obtiens l'erreur “invalid type de fermeture”?
W <- ecdf(c(1,2,3))
W
O <- sum(W)
W
Pourquoi n'est-ce pas le travail? Je reçois
Error in sum(W) : invalid 'type' (closure) of argument
N'ai pas très bien compris la réponse de l'autre des postes similaires depuis que je suis tout à fait nouveau pour cette. Comment puis-je résoudre ce problème?
Tout comme le message d'erreur est vous le dis: Le
w est une fonction, alors? Comment puis-je stocker des valeurs de la fonction w, pour calculer la somme de ses éléments?
W
objet est une fonction (avec un joint d'environnement qui contient les valeurs que vous avez passé). Si vous fournissez une fonction R de certaines valeurs, il va les valeurs de retour. C'est comment R fonctionne. Vous ne dites pas ce que vous attendiez plus de commentaires serait hypothétique.w est une fonction, alors? Comment puis-je stocker des valeurs de la fonction w, pour calculer la somme de ses éléments?
OriginalL'auteur JoeDoe | 2015-10-08
Vous devez vous connecter pour publier un commentaire.
La
ecdf
fonction est vraiment fonctionnel, c'est à dire que sa valeur est une autre fonction. En R les choses que nous appelons des "fonctions" sont en réalité des "fermetures". Ils ont un corps qui est le bloc de code qui est facile à voir en tapant le nom de la fonction. Cependant, ils ont aussi une environnement qui transporte autour des valeurs de variables qui sont définies au moment de la fermeture de la création.Si vous ne voulez pas fournir de nouvelles valeurs de W qui est différent de l'original, les valeurs utilisées pour sa création, alors vous avez besoin pour extraire les valeurs de l'environnement, les valeurs qui existe (et a été créé) au moment de l'appel à
ecdf
.... attendre .... leenvironment
-fonction. Lels
fonction retourne le nom du contenu de cet environnement:À offrir la somme de l'original valeurs de x:
Il est possible d'afficher tout le contenu d'un environnement contraint de données-objet avec
as.list
:OriginalL'auteur 42-