significado - que significa cf en redes sociales
¿Puedes abreviar nombres de lista? ¿Por qué? (2)
Esto me tiene bastante mal. ¿Puedes abreviar nombres de lista? Nunca lo había notado y me jodieron totalmente por un día. ¿Alguien puede explicar qué está pasando aquí y por qué podría ser más útil que terrible? ¿Y por qué es tan inconsistente en la parte inferior? ¿Y si puedo apagarlo?
> wtf <- list(whatisthe=1, pointofthis=2)
> wtf$whatisthe
[1] 1
> wtf$what
[1] 1
> wtf <- list(whatisthe=1, whatisthepointofthis=2)
> wtf$whatisthepointofthis
[1] 2
> wtf$whatisthep
[1] 2
> wtf$whatisthe
[1] 1
> wtf$what
NULL
Para los nombres de elementos de lista (y nombres de parámetros de función), R aplica el siguiente algoritmo:
Si hay una coincidencia exacta para el artículo, utilícelo. Si no hay una coincidencia exacta, busque coincidencias parciales. Si hay exactamente una coincidencia parcial, úsala. De lo contrario, no use nada.
Sospecho que la coincidencia parcial por el operador $
fue una buena característica (r) para uso interactivo en los días previos a la implementación de la tabulación
Si no te gusta ese comportamiento, puedes usar el operador "[["
lugar. Toma un argumento exact=
, que le permite controlar el comportamiento de coincidencia parcial, y el valor predeterminado es TRUE
.
wtf[["whatisthep"]] # Only returns exact matches
# NULL
wtf[["whatisthep", exact=FALSE]] # Returns partial matches without warning
# [1] 2
wtf[["whatisthep", exact=NA]] # Returns partial matches & warns that it did
# [1] 2
# Warning message:
# In wtf[["whatisthep", exact = NA]] :
# partial match of ''whatisthep'' to ''whatisthepointofthis''
(Esta es una de las razones por las que "[["
generalmente se prefiere a $
en la programación R. Otra capacidad es la de hacer esto X <- "whatisthe"; wtf[[X]]
pero no esta X <- "whatisthe"; wtf$X
)