Я использую 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"
Кроме того, где документируется это поведение (если оно есть)?