我想设置一个包含命名条目的列表,其值未被初始化(我计划稍后向它们添加内容).人们通常如何做到这一点?我弄完了:
mylist.names <- c("a", "b", "c")
mylist <- as.list(rep(NA, length(mylist.names)))
names(mylist) <- mylist.names
但这似乎有点hacky.必须有更标准的方法来做到这一点......对吗?
Thi*_*ilo 51
我会这样做:
mylist.names <- c("a", "b", "c")
mylist <- vector("list", length(mylist.names))
names(mylist) <- mylist.names
Woj*_*ala 26
比Thilo有点短的版本:)
mylist <- sapply(mylist.names,function(x) NULL)
另一个棘手的方法:
mylist.names <- c("a", "b", "c") 
mylist <- NULL
mylist[mylist.names] <- list(NULL)
这是有效的,因为您替换了不存在的条目,因此它们已创建.遗憾的是列表(NULL)是必需的,因为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