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 url
funçã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 reactive
expressã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()
!