Em geral, essa mensagem de erro significa que você tentou usar a indexação em uma função. Você pode reproduzir esta mensagem de erro com, por exemplo
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
O fechamento mencionado na mensagem de erro é (vagamente) a função e o ambiente que armazena as variáveis quando a função é chamada.
Neste caso específico, como Joshua mencionou, você está tentando acessar a urlfunção como uma variável. Se você definir uma variável chamada url, o erro desaparece.
Por uma questão de boa prática, você geralmente deve evitar nomear variáveis após funções de base R. (Chamar variáveis dataé uma fonte comum desse erro.)
Existem vários erros relacionados ao tentar subdividir operadores ou palavras-chave.
`+`[1]
## Error in `+`[1] : object of type 'builtin' is not subsettable
`if`[1]
## Error in `if`[1] : object of type 'special' is not subsettable
Se você estiver tendo esse problema em shiny, a causa mais provável é que você está tentando trabalhar com uma reactiveexpressão sem chamá-la como uma função usando parênteses.
library(shiny)
reactive_df <- reactive({
data.frame(col1 = c(1,2,3),
col2 = c(4,5,6))
})
Embora muitas vezes trabalhemos com expressões reativas brilhantes como se fossem quadros de dados, na verdade são funções que retornam quadros de dados (ou outros objetos).
isolate({
print(reactive_df())
print(reactive_df()$col1)
})
col1 col2
1 1 4
2 2 5
3 3 6
[1] 1 2 3
Mas, se tentarmos subconjuí-la sem parênteses, estaremos, na verdade, tentando indexar uma função e obteremos um erro:
isolate(
reactive_df$col1
)
Error in reactive_df$col1 : object of type 'closure' is not subsettable
[]vez de()!