Erro no : o object do tipo ‘encerramento’ não é subsettable

Eu finalmente consegui descobrir o código para a minha raspagem . Parecia estar funcionando bem e, de repente, quando eu corri novamente, recebi a seguinte mensagem de erro:

Error in url[i] = paste("http://en.wikipedia.org/wiki/", gsub(" ", "_", : object of type 'closure' is not subsettable 

Não tenho certeza porque como eu não mudei nada no meu código.

Por favor informar.

 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 } 

   

Em geral, esta mensagem de erro significa que você tentou usar a indexação em uma function. Você pode reproduzir esta mensagem de erro com, por exemplo

 mean[1] ## Error in mean[1] : object of type 'closure' is not subsettable mean[[1]] ## Error in mean[[1]] : object of type 'closure' is not subsettable mean$a ## Error in mean$a : object of type 'closure' is not subsettable 

O fechamento mencionado na mensagem de erro é (vagamente) a function e o ambiente que armazena as variables ​​quando a function é chamada.


Neste caso específico, como Josué mencionou, você está tentando acessar a function url como uma variável. Se você definir uma variável chamada url , o erro desaparece.

Por uma questão de boa prática, você geralmente deve evitar nomear variables ​​após as funções de base-R. (A chamada de data variables ​​é uma fonte comum desse erro.)


Existem vários erros relacionados para tentar subconjuntos de operadores ou palavras-chave.

 `+`[1] ## Error in `+`[1] : object of type 'builtin' is not subsettable `if`[1] ## Error in `if`[1] : object of type 'special' is not subsettable 

Você não define o vetor, url , antes de tentar subconjuí-lo. url também é uma function no pacote base, então o url[i] está tentando subconjunto dessa function … o que não faz sentido.

Você provavelmente definiu o url em sua session anterior do R, mas esqueceu de copiar esse código para o seu script.

Eu acho que você quis fazer url[i] < - paste(...

em vez de url[i] = paste(... Se assim for replace = com < - .