一般に、このエラーメッセージは、関数でインデックスを使用しようとしたことを意味します。たとえば、このエラーメッセージを再現できます。
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
エラーメッセージで言及されているクロージャは、(大まかに)関数と、関数が呼び出されたときに変数を格納する環境です。
この特定のケースでは、ジョシュアが述べたように、あなたは url
、変数として関数ています。という名前の変数を定義するとurl
、エラーはなくなります。
通常、ベース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 <- reactive({
data.frame(col1 = c(1,2,3),
col2 = c(4,5,6))
})
データフレームであるかのように、リアクティブな式を光沢のある状態で操作することがよくありますが、実際には関数ですデータフレーム(または他のオブジェクト)を返すです。
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
[]
代わりに入力した場合にも発生します()
。