値が初期化されずに残っている名前付きエントリのリストを設定したいと思います(後で追加する予定です)。一般的にどのようにこれを行うのですか?終わったよ:
mylist.names <- c("a", "b", "c")
mylist <- as.list(rep(NA, length(mylist.names)))
names(mylist) <- mylist.names
しかし、これは一種のハックのようです。これを行うには、より標準的な方法が必要です...そうですか?
私はこのようにします:
mylist.names <- c("a", "b", "c")
mylist <- vector("list", length(mylist.names))
names(mylist) <- mylist.names
ティロより少し短いバージョン:)
mylist <- sapply(mylist.names,function(x) NULL)
それを行う別のトリッキーな方法:
mylist.names <- c("a", "b", "c")
mylist <- NULL
mylist[mylist.names] <- list(NULL)
これが機能するのは、存在しないエントリを置き換えるので、それらが作成されるからです。 NULLはエントリを削除することを意味するため、残念ながらlist(NULL)は必須です。
x <- list(a=1:2, b=2:3, c=3:4)
x["a"] <- NULL # removes the "a" entry!
x["c"] <- list(NULL) # assigns NULL to "c" entry