J'ai enfin pu élaborer le code de mon grattage . Cela semblait fonctionner correctement et tout à coup, lorsque je l'ai exécuté à nouveau, j'ai reçu le message d'erreur suivant:
Error in url[i] = paste("http://en.wikipedia.org/wiki/", gsub(" ", "_", :
object of type 'closure' is not subsettable
Je ne sais pas pourquoi car je n'ai rien changé dans mon code.
S'il vous plaît donnez votre avis.
library(XML)
library(plyr)
names <- c("George Clooney", "Kevin Costner", "George Bush", "Amar Shanghavi")
for(i in 1:length(names)) {
url[i] = paste('http://en.wikipedia.org/wiki/', gsub(" ","_", names[i]) , sep="")
# some parsing code
}
[]
au lieu de()
!Réponses:
En général, ce message d'erreur signifie que vous avez essayé d'utiliser l'indexation sur une fonction. Vous pouvez reproduire ce message d'erreur avec, par exemple
La fermeture mentionnée dans le message d'erreur est (vaguement) la fonction et l'environnement qui stockent les variables lorsque la fonction est appelée.
Dans ce cas précis, comme Joshua l'a mentionné, vous essayez d'accéder à la
url
fonction en tant que variable. Si vous définissez une variable nomméeurl
, l'erreur disparaît.Par bonne pratique, vous devez généralement éviter de nommer les variables après les fonctions base-R. (L'appel de variables
data
est une source courante de cette erreur.)Il existe plusieurs erreurs liées lors de la tentative de sous-ensemble d'opérateurs ou de mots-clés.
Si vous rencontrez ce problème dans
shiny
, la cause la plus probable est que vous essayez de travailler avec unereactive
expression sans l'appeler en tant que fonction en utilisant des parenthèses.Alors que nous travaillons souvent avec des expressions réactives en brillant comme s'il s'agissait de blocs de données, ce sont en fait des fonctions qui renvoient des blocs de données (ou d'autres objets).
Mais si nous essayons de le sous-ensemble sans parenthèses, alors nous essayons en fait d'indexer une fonction et nous obtenons une erreur:
la source
Vous ne définissez pas le vecteur
url
,, avant d'essayer de le sous- définir .url
est également une fonction dans le package de base, doncurl[i]
tente de sous-ensemble cette fonction ... ce qui n'a pas de sens.Vous avez probablement défini
url
dans votre précédente session R, mais vous avez oublié de copier ce code dans votre script.la source
Dans le cas de cette erreur similaire Attention: Erreur dans $: l'objet de type 'fermeture' n'est pas sous-insérable [Aucune trace de pile disponible]
Ajoutez simplement le nom du package correspondant en utilisant :: eg
au lieu de balises (....)
écrire shiny :: tags (....)
la source
J'ai eu ce problème en essayant de supprimer un élément d'interface utilisateur dans un événement réactif:
J'obtenais cette erreur, mais pas sur la ligne d'élément removeUI, c'était dans l'observateur suivant après pour une raison quelconque. Retirer la méthode removeUI de eventReactive et la placer ailleurs a supprimé cette erreur pour moi.
la source
Je pense que tu voulais faire
url[i] <- paste(...
au lieu de
url[i] = paste(...
. Si c'est le cas, remplacez-le=
par<-
.la source