我有一个名为“specdata”的目录,其中包含 csv 文件(例如 001.csv,002.csv,...,332.csv)。现在我希望我的函数读取此目录中的所有文件并返回一个 data.frame,其中第一列是文件名,第二列是完整案例的数量。
例如:
id nobs
1 108
2 345
...
etc
现在,我编写了这个函数,它读取“specdata”目录中的所有文件并生成每个文件中完整案例的总和。但我不知道如何把每个没有。由循环中的“nobs”生成到新的data.frame中,格式如下:
id nobs
1 108
2 345
...
...
332 16
我的功能:
complete <- function(directory, id = 1:332) {
for(i in 1:332)
{
if(i<10)
{
path<-paste(directory,"/00",id[i],".csv",sep="")
}
if(i>9 & i<100)
{
path<-paste(directory,"/0",id[i],".csv",sep="")
}
if(i>99 & i<333)
{
path<-paste(directory,"/",id[i],".csv",sep="")
}
mydata<-read.csv(path)
#nobs<-nrow(na.omit(mydata))
nobs<-sum(complete.cases(mydata))
}
}
问题是“nobs”在for循环中逐行动态创建,我想将所有文件的整个“nobs”列表放入data.frame中。我尝试了很多方法,但无法将整个“nobs”列表与“id”数字一起放入 data.frame 中。
有人可以建议一种按要求的顺序返回 data.frame 的方法吗?