<code>:object类型为'closure'的对象不是子集合
我终于能够弄清楚我的代码了。 它似乎工作正常,然后突然当我再次运行,我得到了以下错误信息:
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 }
一般来说,这个错误信息意味着你已经试图在一个函数上使用索引。 例如,您可以重现此错误消息
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
错误消息中提到的闭包(松散地)是调用函数时存储变量的函数和环境。
在这个具体的例子中,正如Joshua所说的,你正试图以一个变量的形式访问url
函数。 如果你定义一个名为url
的变量,那么错误就会消失。
作为一个良好的做法,通常应避免在base-R函数之后命名变量。 (调用变量data
是此错误的常见来源。)
尝试子集操作符或关键字有几个相关的错误。
`+`[1] ## Error in `+`[1] : object of type 'builtin' is not subsettable `if`[1] ## Error in `if`[1] : object of type 'special' is not subsettable
在尝试对其进行子集化之前,您不要定义矢量url
。 url
也是基本包中的一个函数,所以url[i]
正在尝试子集那个函数…这是没有意义的。
您可能在之前的R会话中定义了url
,但忘记将该代码复制到脚本中。
我认为你的意思是做url[i] <- paste(...
而不是url[i] = paste(...
如果是这样替换=
with <-
。