En general, este mensaje de error significa que ha intentado utilizar la indexación en una función. Puede reproducir este mensaje de error con, por ejemplo
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
El cierre mencionado en el mensaje de error es (vagamente) la función y el entorno que almacena las variables cuando se llama a la función.
En este caso específico, como mencionó Joshua, está intentando acceder a la urlfunción como una variable. Si define una variable nombrada url, el error desaparece.
Como una buena práctica, generalmente debe evitar nombrar variables después de funciones base-R. (Las variables de llamada dataes una fuente común de este error).
Hay varios errores relacionados al intentar crear un subconjunto de operadores o palabras clave.
`+`[1]
## Error in `+`[1] : object of type 'builtin' is not subsettable
`if`[1]
## Error in `if`[1] : object of type 'special' is not subsettable
Si se encuentra con este problema en shiny, la causa más probable es que está tratando de trabajar con unreactive expresión sin llamarla como una función usando paréntesis.
library(shiny)
reactive_df <- reactive({
data.frame(col1 = c(1,2,3),
col2 = c(4,5,6))
})
Si bien a menudo trabajamos con expresiones reactivas en brillante como si fueran marcos de datos, en realidad son funciones que devuelven marcos de datos (u otros objetos).
isolate({
print(reactive_df())
print(reactive_df()$col1)
})
col1 col2
1 1 4
2 2 5
3 3 6
[1] 1 2 3
Pero si tratamos de crear un subconjunto sin paréntesis, en realidad estamos tratando de indexar una función y obtenemos un error:
isolate(
reactive_df$col1
)
Error in reactive_df$col1 : object of type 'closure' is not subsettable
[]lugar de()!