0

我正在尝试将 csv 文件及其名称作为日期读取到 for 循环中,然后在该文件实际存在时从该文件中打印出几列数据。我需要跳过我没有任何数据的日期和实际不存在的日期。当我输入我的代码时,没有输出,它只是空白。为什么我的代码不起作用?

options(width=10000)

options(warn=2)

for(a in 3:5){
for(b in 0:1){
for(c in 0:9){
for(d in 0:3){
for(e in 0:9){

mydata=try(read.csv(paste("201",a,b,c,d,e,".csv",sep="")), silent=TRUE)

if(class(mydata)=="try-error"){next}

else{

    mydata$Data <- do.call(paste, c(mydata[c("LAST_UPDATE_DT","px_last")], sep=""))
    print(t(mydata[,c('X','Data')]))
}

}}}}}
4

1 回答 1

1

这是读取所有文件的一种非常糟糕的方式。试试这个:

f <- list.files(pattern="*.csv")
mydata <- sapply(f, read.csv, simplify=FALSE)

这将返回一个mydata数据帧列表,每个数据帧都是对应文件的内容。

或者,如果您不想读取其他 csv 文件,可以限制规范:

f <- list.files(pattern="201\\d{5}\\.csv")

并将所有内容组合到一个大数据框架中:

do.call(rbind, mydata)
于 2013-08-06T21:03:54.387 回答