我的环境中有一系列称为EOG的数据框。从2006年到2012年,每年都有一个。像EOG2006,EOG2007 ... EOG2012。我想将它们添加为列表的元素。
首先,我想知道这是否可能。我阅读了官方的R指南和一些R编程手册,但没有找到明确的示例。
其次,我想使用一个for循环来做到这一点。不幸的是,我曾经做过的代码是错误的,我快要修复它了。
for (j in 2006:2012){
z<-j
sEOG<-paste("EOG", z, sep="")
dEOG<-get(paste("EOG", z, sep=""))
lsEOG<-list()
lsEOG[[sEOG]]<-dEOG
}
这将返回一个包含一个元素的列表。错误在哪里?
最佳答案
您一直在循环内重新初始化列表。您需要将lsEOG<-list()
移到for
循环之外。
lsEOG<-list()
for (j in 2006:2012){
z <- j
sEOG <- paste("EOG", z, sep="")
dEOG <- get(paste("EOG", z, sep=""))
lsEOG[[sEOG]] <-dEOG
}
另外,您可以直接在
j
函数中使用paste
:sEOG <- paste("EOG", j, sep="")
关于r - 将数据框添加为列表元素(用于循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19791760/