我想从字符串创建多个列表。例如,在处理一些数据和图表时,我喜欢保持我的工作流程整洁并将对象存储在列表中:
# For data
lstDta <- list()
# For charts
lstChrts <- list()
以相同的方式创建更多列表看起来很无聊和重复,这对于眼睛来说并不令人愉快。
理想情况下,我想使用名称为
的字符串创建列表mapply(assign, c("lstDta", "lstChrts"),
rep(as.list(1),3), pos = 1)
可以理解,下面的代码会返回错误:
> mapply(assign, c("lstDta", "lstChrts"),
+ rep(as.list(NULL),2), pos = 1)
Error in mapply(assign, c("lstDta", "lstChrts"), rep(as.list(NULL), 2), :
zero-length inputs cannot be mixed with those of non-zero length
可以让它像那样运行:
mapply(assign, c("lstDta", "lstChrts"),
rep(as.list(1),2), pos = 1)
但创建的对象是numeric
。我想要实现的目标归结为:获取此字符向量并为每个值创建一个空列表。
答案 0 :(得分:2)
这是一种方法:
sapply(c("lstDta", "lstChrts"), function(n) {
assign(n, list(), envir = .GlobalEnv)
})
ls.str()
#lstChrts : list()
#lstDta : list()