从一个字符串创建多个列表
Create multiple lists from a string
我想从字符串创建多个列表。例如,在处理一些数据和图表时,我喜欢保持工作流程整洁并将对象存储在列表中:
# For data
lstDta <- list()
# For charts
lstChrts <- list()
以相同的方式创建更多列表看起来乏味且重复,这不悦目。
问题
理想情况下,我想使用名称为以下的字符串创建列表:
mapply(assign, c("lstDta", "lstChrts"),
rep(as.list(1),3), pos = 1)
可以理解,下面的代码returns错误:
> 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
。我想要实现的目标归结为:获取这个字符向量并为每个值创建一个空列表。
这是一种方法:
sapply(c("lstDta", "lstChrts"), function(n) {
assign(n, list(), envir = .GlobalEnv)
})
ls.str()
#lstChrts : list()
#lstDta : list()
我想从字符串创建多个列表。例如,在处理一些数据和图表时,我喜欢保持工作流程整洁并将对象存储在列表中:
# For data
lstDta <- list()
# For charts
lstChrts <- list()
以相同的方式创建更多列表看起来乏味且重复,这不悦目。
问题
理想情况下,我想使用名称为以下的字符串创建列表:
mapply(assign, c("lstDta", "lstChrts"),
rep(as.list(1),3), pos = 1)
可以理解,下面的代码returns错误:
> 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
。我想要实现的目标归结为:获取这个字符向量并为每个值创建一个空列表。
这是一种方法:
sapply(c("lstDta", "lstChrts"), function(n) {
assign(n, list(), envir = .GlobalEnv)
})
ls.str()
#lstChrts : list()
#lstDta : list()