这个问题在这里已经有了答案:
Access and preserve list names in lapply function
(6 个回答)
5年前关闭。
我想知道最好的方法是使用 lapply famliy(或 plyr)系列函数来获取一个向量,将一个函数应用于元素,并返回一个名称与第一个参数向量中提供的值相同的列表.所以,例如,如果我这样做:
lapply(letters[1:3], function(x) NULL)
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
我想返回,而不是 [[1]], [[2]], [[3]] 作为列表的名称(或者只是简单的索引),字母“a”,“b”,和“c”作为输出列表的名称。
我从这里知道我可以这样做( How to create a list with names but no entries in R/Splus? )来预先创建具有正确名称的列表,但我想知道是否可以在不预先创建具有正确名称的列表的情况下执行此操作。
谢谢,
马特
最佳答案
sapply
有一个 USE.NAMES
将做你想做的事情的论点:
sapply(letters[1:3], function(x) NULL, simplify=FALSE, USE.NAMES=TRUE)
# $a
# NULL
# $b
# NULL
# $c
# NULL
正如 Josh O'Brien 在评论中所指出的——正如你所发现的——
simplify=FALSE
防止输出被简化为更简单的数据结构,使结果与您使用 lapply
得到的结果保持一致。 (当然,除了名字)。
关于r - 重叠向量,使用值作为输出列表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18853708/