我是R的新手。我有多个向量,我想将它们存储在for循环的列表中。我尝试使用[],[[]]和(),我收到一条错误,指出找不到dateRange。你能帮我修理一下我的代码吗?
dateRange1 <- c('2015-01','2015-12')
dateRange2 <- c('2016-01','2016-12')
ind <- list()
for (a in 1:2) {
ind[a] <- dateRange(a)
}
ind
谢谢,祝你有个美好的一天!
答案 0 :(得分:3)
如果您真的想要,请使用get()
或mget()
ind <- mget(paste0("dateRange", 1:2))
如果您以前在某处使用assign()
,那么你会得到如此多的向量。这就是您必须重新构建数据生成过程的重点。 (通常使用assign()
不是一个好主意。“如果问题是:使用assign()
?答案几乎是:否” )。
Why is using assign bad?
答案 1 :(得分:2)
您没有名为dateRange
的对象。要执行您尝试使用eval
和parse
所需的操作。设置a <- 1
然后单独运行各个部分以查看它们的作用。检查paste0("dateRange", a)
的作用,然后parse(text = paste0("dateRange", a))
,然后eval(parse(text = paste0("dateRange", a)))
。
dateRange1 <- c('2015-01','2015-12')
dateRange2 <- c('2016-01','2016-12')
ind <- list()
for (a in 1:2) {
ind[[a]] <- eval(parse(text = paste0("dateRange", a)))
}
ind