这是包含所有CSV文件的specdata目录的zip文件:https://d396qusza40orc.cloudfront.net/rprog%2Fdata%2Fspecdata.zip
我正在尝试将所有文件放入数据框中,因此我可以使用complete.cases,此代码创建数据帧列表但不创建单个数据框,因此我在尝试使用complete.cases时遇到错误 . 我看着使用合并,但我似乎无法解决如何在多个文件的for循环中使用合并 . 我已经尝试实现rbind,我认为我接近这样做但我也似乎无法弄清楚如何在for循环中正确使用它 . 我是一个初学者,在我继续像lapply这样的矢量化函数之前,试图理解for循环 .
这是代码:
complete<- function(directory, id=1:332){
data<-NULL
for (i in 1:length(id)) {
data[[i]]<- c(paste(directory, "/",formatC(id[i], width=3, flag=0),".csv",sep=""))
}
cases<-NULL
for (d in 1:length(data)) {
cases[[d]]<-c(read.csv(data[d]))
}
df<-NULL
for (c in 1:length(cases)){
df[[c]]<-(data.frame(cases[c]))
}
df
}
1 回答
首先要做的是删除for循环(如果你是初学者,那么只需直接进入apply系列,R中的for循环有时更容易,但apply系列是R方式) .
然后取决于你是否真的想要merge或rbind(因为它们不一样)
要么