Finalmente pude resolver el código para mi raspado . Parecía estar funcionando bien y, de repente, cuando lo ejecuté de nuevo, recibí el siguiente mensaje de error:
Error in url[i] = paste("http://en.wikipedia.org/wiki/", gsub(" ", "_", :
object of type 'closure' is not subsettable
No estoy seguro de por qué, ya que no cambié nada en mi código.
Por favor avise.
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
}
[]
lugar de()
!Respuestas:
En general, este mensaje de error significa que ha intentado utilizar la indexación en una función. Puede reproducir este mensaje de error con, por ejemplo
El cierre mencionado en el mensaje de error es (vagamente) la función y el entorno que almacena las variables cuando se llama a la función.
En este caso específico, como mencionó Joshua, está intentando acceder a la
url
función como una variable. Si define una variable nombradaurl
, el error desaparece.Como una buena práctica, generalmente debe evitar nombrar variables después de funciones base-R. (Las variables de llamada
data
es una fuente común de este error).Hay varios errores relacionados al intentar crear un subconjunto de operadores o palabras clave.
Si se encuentra con este problema en
shiny
, la causa más probable es que está tratando de trabajar con unreactive
expresión sin llamarla como una función usando paréntesis.Si bien a menudo trabajamos con expresiones reactivas en brillante como si fueran marcos de datos, en realidad son funciones que devuelven marcos de datos (u otros objetos).
Pero si tratamos de crear un subconjunto sin paréntesis, en realidad estamos tratando de indexar una función y obtenemos un error:
fuente
No define el vector
url
, antes de intentar crear un subconjunto.url
también es una función en el paquete base, por lo queurl[i]
está intentando subconjuntar esa función ... lo cual no tiene sentido.Probablemente lo definió
url
en su sesión de R anterior, pero olvidó copiar ese código en su script.fuente
En caso de este error similar Advertencia: Error en $: el objeto de tipo 'cierre' no es subconjunto [No hay seguimiento de pila disponible]
Simplemente agregue el nombre del paquete correspondiente usando :: eg
en lugar de etiquetas (....)
escribir etiquetas brillantes :: (....)
fuente
Tuve este problema al intentar eliminar un elemento de la interfaz de usuario dentro de un evento reactivo:
Recibí este error, pero no en la línea del elemento removeUI, estaba en el siguiente observador después por alguna razón. Sacar el método removeUI del eventReactive y colocarlo en otro lugar eliminó este error para mí.
fuente
Creo que pretendías hacer
url[i] <- paste(...
en lugar de
url[i] = paste(...
. Si es así, reemplácelo=
con<-
.fuente