2017-04-12 88 views
1

我是R新手。我有多个向量,我想将它们存储在for循环的列表中。我试过使用[],[[]]和(),我得到一个错误,指出没有找到dateRange。你能帮我解决我的代码吗?使用for循环将多个向量存储在列表中

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

这不是很清楚,你是否需要这样的日期= dateRange = list(c('2015-01','2015-12'),c('2016-01','2016-12 '))'? –

+0

如果我不清楚,我很抱歉。但我想将所有的dateRange存储到名为“ind”的列表中,所以当我访问ind [[1]]时,它将显示dateRange1和ind [[2]]的值,它将显示dateRange2中的值。希望这是有道理的。 – aotearoa

+0

如何获取多个向量?在此过程中,您可以生成您的列表。 – jogo

回答

3

如果你真的想要的是,使用get()mget()

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

Normaly你这么一堆载体的,如果你在什么地方使用assign()。这是您必须重构数据生成过程的关键。 (通常使用assign()不是一个好主意。“如果问题是:使用assign()答案几乎是:no”)。
Why is using assign bad?

+0

感谢您关注此事。这个mget的功能也适用于如果我有几个输入$ daterange在SHY R R /只想知道dateRangeInput。 – aotearoa

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 
+0

谢谢杰克。这是我正在寻找的。欣赏你的时间。 – aotearoa