我想知道最好的方法是使用lapply famliy(或plyr)函数系列来获取向量,将函数应用于元素,并返回一个名称与第一个参数向量中提供的值相同的列表.所以,例如,如果我这样做:
lapply(letters[1:3], function(x) NULL)
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
Run Code Online (Sandbox Code Playgroud)
我想返回,而不是[[1]],[[2]],[[3]]作为列表的名称(或简称为普通索引),字母"a","b",和"c"作为输出列表的名称.
我从这里知道我可以这样做(如何在R/Splus中创建一个名称但没有条目的列表?),事先用正确的名称创建列表,但我想知道如果我不能预先创建列出正确的名称.
谢谢,马特
Pey*_*ton 12
sapply有一个USE.NAMES参数可以做你想要的:
sapply(letters[1:3], function(x) NULL, simplify=FALSE, USE.NAMES=TRUE)
# $a
# NULL
# $b
# NULL
# $c
# NULL
Run Code Online (Sandbox Code Playgroud)
正如Josh O'Brien在评论中指出的那样 - 正如你已经想到的那样 - simplify=FALSE阻止输出被简化为更简单的数据结构,保持结果与你所得到的一致lapply(除了名字之外)课程).