我在从一个文件列表创建一个主数据框架时遇到了问题,当我加载它时,它给我的只是最后的id号,而不是其余的,帮助?
options(max.print=10000000)
pollutant<-function(id)
{
for (i in 1:id){
filenames = sprintf("%03d.csv", i)
masterframe<-read.csv(filenames)
}
realdata<-na.omit(masterframe)
realdata
}我试图使数据文件的主数据框架达到id,并使用以下代码
options(max.print=10000000)
pollutant<-function(id,pollutant){
for (i in 1:id) {
filenames=list.files(pattern="csv")
df.list = lapply(filenames, function(i) na.omit(read.csv(i)))
master.df = do.call(rbind, df.list)}
master.df}但是我一直在为所有332个文件获得一个主数据框架,当我运行它的时候,它不局限于id。
发布于 2016-02-18 20:13:39
正如@rawr发布的链接中指出的那样,每次都要通过循环覆盖masterframe,因此realdata只是最后导入的文件。看起来你更想要这样的东西:
realdata = list()
for (i in 1:id) {
filenames = sprintf("%03d.csv", i)
masterframe <- read.csv(filenames)
realdata[[filenames]] = na.omit(masterframe)
}但是,lapply可能是一种更干净的方法:
# Get vector of filenames to read
filenames=list.files(pattern="csv")
# Read all the files into a list of data frames
df.list = lapply(filenames, function(x) na.omit(read.csv(x)))
# Combine into a single data frame
master.df = do.call(rbind, df.list)https://stackoverflow.com/questions/35489833
复制相似问题