使用for循环将多个向量存储在列表中

时间:2017-04-12 13:34:30

标签: r list for-loop vector

我是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

谢谢,祝你有个美好的一天!

2 个答案:

答案 0 :(得分:3)

如果您真的想要,请使用get()mget()

ind <- mget(paste0("dateRange", 1:2))

如果您以前在某处使用assign(),那么你会得到如此多的向量。这就是您必须重新构建数据生成过程的重点。 (通常使用assign()不是一个好主意。“如果问题是:使用assign()答案几乎是:” )。
Why is using assign bad?

答案 1 :(得分:2)

您没有名为dateRange的对象。要执行您尝试使用evalparse所需的操作。设置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