如何在R / Splus中创建名称但没有条目的列表?

时间:2011-04-16 16:46:30

标签: r s-plus

我想设置一个包含命名条目的列表,其值未被初始化(我计划稍后向他们添加内容)。人们通常如何做到这一点?我做完了:

mylist.names <- c("a", "b", "c")
mylist <- as.list(rep(NA, length(mylist.names)))
names(mylist) <- mylist.names

但这似乎有点hacky。必须有一种更标准的方法来做到这一点......对吧?

3 个答案:

答案 0 :(得分:50)

我会这样做:

mylist.names <- c("a", "b", "c")
mylist <- vector("list", length(mylist.names))
names(mylist) <- mylist.names

答案 1 :(得分:24)

比Thilo稍短的版本:)

mylist <- sapply(mylist.names,function(x) NULL)

答案 2 :(得分:9)

另一种棘手的方法:

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