Надежно ли в R поведение [[<- - когда символьный индекс представляет собой строку нулевой длины ("")? - PullRequest
0 голосов
/ 07 сентября 2018

Я использую R 3.5.1. help("[[<-") говорит, частично:

Ни пустые (""), ни NA индексы не соответствуют ни одному имени, даже пустому или отсутствующему.

Однако я нахожу, например,

> list1 <- list()
> list1[[""]] <- 42L
> list1[[""]] <- "WHAT IS SIX TIMES SEVEN"
> list1
[[1]]
[1] 42

[[2]]
[1] "WHAT IS SIX TIMES SEVEN"

Я пишу функцию, аналогичную

list.revised <- function(list1=list(), name="", value=NA) {
    list1[[name]] <- value
    list1 }

Мне нужен унифицированный интерфейс (с настройками по умолчанию, отличными от [[<-) для назначения элементов списка, и, поскольку элементы не обязательно будут иметь имена, по умолчанию "" для name удобно, при условии, что поведение [[""]]<- надежно (например, не будет удалено как ошибка в ближайшем будущем):

> list.revised(list.revised(list.revised(name="ROSE", value="A ROSE"), name="TULIP", value="A ROSE"), value="A ROSE")
$`ROSE`
[1] "A ROSE"

$TULIP
[1] "A ROSE"

[[3]]
[1] "A ROSE"

Кроме того, где документируется это поведение (если оно есть)?

...