From @oko| @end|ng |rom |n@@-tou|ou@e@|r  Mon Sep 11 18:52:51 2023
From: @oko| @end|ng |rom |n@@-tou|ou@e@|r (=?UTF-8?Q?Sergue=C3=AF_Sokol?=)
Date: Mon, 11 Sep 2023 18:52:51 +0200
Subject: [Rd] List's `[[` method with "" tag
In-Reply-To: <CAMigB8FTRq5BeY8nHfukwyk=kBNQ1k6EHfsKRv6EEZytLC9=og@mail.gmail.com>
References: <CAMigB8FTRq5BeY8nHfukwyk=kBNQ1k6EHfsKRv6EEZytLC9=og@mail.gmail.com>
Message-ID: <fdf54c1464d0e0d9a45fae138c050ef1@198c5bc6.internal>

It's per design: 

?names
...
The name '""' is special: it is used to
indicate that there is no
name associated with an element of a (atomic
or generic) vector.
Subscripting by '""' will match nothing (not even
elements which
have no name).
... 

Best,
Serguei. 

Le 2023-09-11
18:29, Trevor Davis a ?crit :

> Hi,
> 
> I notice that one can assign a
variable to an R list by using an empty
> string key but one cannot get
that variable back from the list by using the
> empty string key:
> 
>
```r
> l <- list()
> l[[""]] <- "An empty string as list key"
>
names(l)
> l[[""]] # Returns a `NULL`
> l[[names(l) == ""]] # Returns
first value with `""` tag
> ```
> 
> Instead of `l[[""]]` returning a
`NULL` I'd "expect" it to instead return
> the first variable named `""`
i.e. in this case "An empty string as list
> key".  It would be nice if
the `[[` method of a list was updated to "fix"
> this.
> 
>
Additionally, I observe that if a list is named but has certain
elements
> without names then those are currently "named" `""`:
> 
>
```r
> names(list(a = 1, 2, c = 3, 4))
> ```
> 
> This latter change may
be a breaking change but I speculate that perhaps it
> may be more
intuitive if missing names were indicated with `NA_character_`
> instead
of `""`.
> 
> Thanks,
> 
> Trevor
> 
> [[alternative HTML version
deleted]]
> 
> ______________________________________________
>
R-devel at r-project.org mailing list
>
https://stat.ethz.ch/mailman/listinfo/r-devel
 
	[[alternative HTML version deleted]]



[Rd] List's `[[` method with "" tag
=?UTF-8?Q?Sergue=C3=AF_Sokol?=