Saya akhirnya bisa mengerjakan kode untuk scraping saya . Sepertinya berfungsi dengan baik dan kemudian tiba-tiba ketika saya menjalankannya lagi, saya mendapat pesan kesalahan berikut:
Error in url[i] = paste("http://en.wikipedia.org/wiki/", gsub(" ", "_", :
object of type 'closure' is not subsettable
Saya tidak yakin mengapa karena saya tidak mengubah apa pun dalam kode saya.
Mohon saran.
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
}
[]
bukan()
!Jawaban:
Secara umum, pesan kesalahan ini berarti Anda telah mencoba menggunakan pengindeksan pada suatu fungsi. Anda dapat mereproduksi pesan kesalahan ini dengan, misalnya
Penutupan yang disebutkan dalam pesan kesalahan adalah (secara longgar) fungsi dan lingkungan yang menyimpan variabel saat fungsi tersebut dipanggil.
Dalam kasus khusus ini, seperti yang disebutkan Joshua, Anda mencoba mengakses
url
fungsi sebagai variabel. Jika Anda mendefinisikan variabel bernamaurl
, maka kesalahannya akan hilang.Sebagai praktik yang baik, Anda biasanya harus menghindari penamaan variabel setelah fungsi basis-R. (Memanggil variabel
data
adalah sumber umum kesalahan ini.)Ada beberapa kesalahan terkait untuk mencoba subset operator atau kata kunci.
Jika Anda mengalami masalah ini di
shiny
, kemungkinan besar penyebabnya adalah Anda mencoba bekerja denganreactive
ekspresi tanpa memanggilnya sebagai fungsi menggunakan tanda kurung.Meskipun kita sering bekerja dengan ekspresi reaktif dalam bentuk mengkilap seolah-olah itu adalah bingkai data, sebenarnya itu adalah fungsi yang mengembalikan bingkai data (atau objek lain).
Tetapi jika kita mencoba untuk membuat subset tanpa tanda kurung, maka kita sebenarnya mencoba mengindeks suatu fungsi, dan kita mendapatkan kesalahan:
sumber
Anda tidak menentukan vektor
url
,, sebelum mencoba membuat subset.url
juga merupakan fungsi dalam paket dasar, jadiurl[i]
mencoba untuk membuat subset fungsi itu ... yang tidak masuk akal.Anda mungkin mendefinisikan
url
sesi R sebelumnya, tetapi lupa menyalin kode itu ke skrip Anda.sumber
Dalam kasus kesalahan serupa ini Peringatan: Kesalahan dalam $: objek berjenis 'closure' tidak dapat diatur [Tidak tersedia jejak tumpukan]
Cukup tambahkan nama paket yang sesuai menggunakan :: mis
alih-alih tag (....)
tulis mengkilap :: tag (....)
sumber
Saya mengalami masalah ini saat mencoba menghapus elemen ui di dalam acara reaktif:
Saya mendapatkan kesalahan ini, tetapi tidak pada baris elemen removeUI, itu di pengamat berikutnya setelah untuk beberapa alasan. Mengambil metode removeUI dari eventReactive dan menempatkannya di tempat lain menghapus kesalahan ini untuk saya.
sumber
Saya pikir Anda bermaksud melakukannya
url[i] <- paste(...
bukannya
url[i] = paste(...
. Jika demikian ganti=
dengan<-
.sumber