Endlich konnte ich den Code für mein Scraping ausarbeiten . Es schien gut zu funktionieren und als ich es dann wieder ausführte, bekam ich plötzlich die folgende Fehlermeldung:
Error in url[i] = paste("http://en.wikipedia.org/wiki/", gsub(" ", "_", :
object of type 'closure' is not subsettable
Ich bin mir nicht sicher warum, da ich nichts an meinem Code geändert habe.
Bitte beraten.
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
}
[]
statt()
!Antworten:
Im Allgemeinen bedeutet diese Fehlermeldung, dass Sie versucht haben, die Indizierung für eine Funktion zu verwenden. Sie können diese Fehlermeldung beispielsweise mit reproduzieren
Der in der Fehlermeldung erwähnte Abschluss ist (lose) die Funktion und die Umgebung, in der die Variablen beim Aufruf der Funktion gespeichert werden.
In diesem speziellen Fall versuchen Sie, wie Joshua erwähnt hat, auf die
url
Funktion als Variable zuzugreifen . Wenn Sie eine Variable mit dem Namen definierenurl
, verschwindet der Fehler.Aus bewährten Gründen sollten Sie normalerweise vermeiden, Variablen nach Base-R-Funktionen zu benennen. (Das Aufrufen von Variablen
data
ist eine häufige Ursache für diesen Fehler.)Es gibt mehrere verwandte Fehler beim Versuch, Operatoren oder Schlüsselwörter zu unterteilen.
Wenn Sie in auf dieses Problem stoßen
shiny
, ist die wahrscheinlichste Ursache, dass Sie versuchen, mit einemreactive
Ausdruck zu arbeiten, ohne ihn als Funktion in Klammern aufzurufen.Während wir oft mit reaktiven Ausdrücken arbeiten, die glänzend sind, als wären sie Datenrahmen, sind sie tatsächlich Funktionen , die Datenrahmen (oder andere Objekte) zurückgeben.
Wenn wir jedoch versuchen, es ohne Klammern zu unterteilen, versuchen wir tatsächlich, eine Funktion zu indizieren, und es wird eine Fehlermeldung angezeigt:
quelle
Sie definieren den Vektor nicht
url
, bevor Sie versuchen, ihn zu unterteilen.url
ist auch eine Funktion im Basispaket, alsourl[i]
wird versucht, diese Funktion zu unterteilen ... was keinen Sinn ergibt.Sie haben wahrscheinlich
url
in Ihrer vorherigen R-Sitzung definiert, aber vergessen, diesen Code in Ihr Skript zu kopieren.quelle
Im Falle dieses ähnlichen Fehlers Warnung: Fehler in $: Objekt vom Typ 'Closure' ist nicht untergeordnet [Keine Stapelverfolgung verfügbar]
Fügen Sie einfach den entsprechenden Paketnamen mit :: z
anstelle von Tags (....)
schreibe shiny :: tags (....)
quelle
Ich hatte dieses Problem beim Versuch, ein UI-Element innerhalb eines reaktiven Ereignisses zu entfernen:
Ich habe diesen Fehler erhalten, aber nicht in der removeUI-Elementzeile, sondern aus irgendeinem Grund im nächsten Beobachter. Durch Entfernen der removeUI-Methode aus eventReactive und Platzieren an einer anderen Stelle wurde dieser Fehler für mich behoben.
quelle
Ich denke du wolltest es tun
url[i] <- paste(...
statt
url[i] = paste(...
. Wenn ja, ersetzen Sie=
durch<-
.quelle