java对象是类的子集_<my code>中的错误:'closure'类型的对象不是子集表

通常,此错误消息表示您已尝试在函数上使用索引 . 例如,您可以重现此错误消息

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

如果您在 shiny 中遇到此问题,最可能的原因是您尝试使用 reactive 表达式而不将其作为使用括号的函数调用 .

library(shiny)

reactive_df

data.frame(col1 = c(1,2,3),

col2 = c(4,5,6))

})

虽然我们经常使用闪亮的反应式表达式,就像它们是数据帧一样,但它们实际上是 functions ,它们返回数据帧(或其他对象) .

isolate({

print(reactive_df())

print(reactive_df()$col1)

})

col1 col2

1 1 4

2 2 5

3 3 6

[1] 1 2 3

但是如果我们尝试在没有括号的情况下对其进行子集化,那么我们实际上是在尝试索引函数,并且我们得到一个错误:

isolate(

reactive_df$col1

)

Error in reactive_df$col1 : object of type 'closure' is not subsettable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值