Skip to content

access an element with empty name

3 messages · Kurt Hornik, Serguei Sokol

#
Hi,

I came across a case where I cannot access a list element by its empty name.
Minimal example can be constructed as

 ??? x=list("A", 1)
 ??? names(x)=c("a", "")
 ??? x[["a"]]
 ??? #[1]? "A"
 ??? x[[""]]
 ??? #NULL
 ??? x$`a`
 ??? #[1]? "A"
 ??? x$``
 ??? # Error: attempt to use zero-length variable name
 ??? # but we can still access the second element by its index
 ??? x[[2]]
 ??? #[1] 1

To my mind, it should be perfectly legal to access an element by an 
empty name as we can have for example
 ??? match("", names(x))
 ??? #[1] 2
Hence a traditional question: is it a bug or feature?

Best,
Serguei.


 > sessionInfo()
R version 3.5.0 (2018-04-23)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Mageia 6

Matrix products: default
BLAS/LAPACK: /home/opt/OpenBLAS/lib/libopenblas_sandybridge-r0.3.0.dev.so

locale:
[1] C

attached base packages:
[1] stats???? graphics? grDevices utils???? datasets? methods base

loaded via a namespace (and not attached):
[1] compiler_3.5.0
#
A feature according to the docs: ? Extract says

    Neither empty (?""?) nor ?NA? indices match any names, not even
    empty nor missing names. 

-k

        
#
Le 14/05/2018 ? 15:55, Kurt Hornik a ?crit?:
Thanks Kurt, I missed that one.