Наконец-то я смог разработать код для очистки . Казалось, что он работает нормально, а затем, когда я снова запустил его, я получил следующее сообщение об ошибке:
Error in url[i] = paste("http://en.wikipedia.org/wiki/", gsub(" ", "_", :
object of type 'closure' is not subsettable
Я не уверен, почему, поскольку я ничего не изменил в своем коде.
Пожалуйста, порекомендуйте.
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
}
[]
вместо()
!Ответы:
Обычно это сообщение об ошибке означает, что вы пытались использовать индексацию для функции. Вы можете воспроизвести это сообщение об ошибке, например,
Замыкание, упомянутое в сообщении об ошибке, является (в общих чертах) функцией и средой, в которой хранятся переменные при вызове функции.
В этом конкретном случае, как упомянул Джошуа, вы пытаетесь получить доступ к
url
функции как к переменной. Если вы определите переменную с именемurl
, ошибка исчезнет.Как правило, вам следует избегать именования переменных после функций base-R. (Вызов переменных
data
- частый источник этой ошибки.)Есть несколько связанных ошибок при попытке подмножества операторов или ключевых слов.
Если вы столкнулись с этой проблемой в
shiny
, наиболее вероятная причина заключается в том, что вы пытаетесь работать сreactive
выражением, не вызывая его как функцию, используя круглые скобки.Хотя мы часто работаем с реактивными выражениями в сиянии, как если бы они были фреймами данных, на самом деле это функции , возвращающие фреймы данных (или другие объекты).
Но если мы попытаемся разбить его на подмножество без скобок, то на самом деле мы попытаемся проиндексировать функцию и получим ошибку:
источник
Вы не определяете вектор
url
перед попыткой его подмножества.url
также является функцией базового пакета, поэтомуurl[i]
мы пытаемся выделить эту функцию в подмножество ... что не имеет смысла.Вы, вероятно, определили
url
в своем предыдущем сеансе R, но забыли скопировать этот код в свой скрипт.источник
В случае подобной ошибки Предупреждение: Ошибка в $: объект типа 'closure' не является подмножеством [Трассировка стека недоступна]
Просто добавьте соответствующее имя пакета, используя :: eg
вместо тегов (....)
напишите shiny :: tags (....)
источник
У меня была эта проблема, когда я пытался удалить элемент пользовательского интерфейса внутри реактивного события:
Я получал эту ошибку, но не в строке элемента removeUI, по какой-то причине она была в следующем наблюдателе после. Удаление метода removeUI из eventReactive и его размещение в другом месте устранили эту ошибку для меня.
источник
Я думаю, ты хотел сделать
url[i] <- paste(...
вместо
url[i] = paste(...
. Если да, замените=
на<-
.источник