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")

すべてを 1 つの大きなデータ フレームに結合するには、次のようにします。

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