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 url
funció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 data
es 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()
!