1

Web から抽出したファイルに含まれる csv ファイルを読み込もうとしています。問題は、圧縮されたファイルに複数のカスケード フォルダーがあることです。いくつかの異なるユニットに対してそれを行う必要があるため、ループを実行しています。ループに問題はありません。ファイル名は正しく、ファイルをダウンロードできます。ただし、エラーメッセージが表示されます(Rが検索を要求している正確なファイルを見つけることができないためだと思います)。エラーは次のとおりです。

Error in open.connection(file, "rt") : cannot open the connection
In addition: Warning message:
In open.connection(file, "rt") :
  cannot locate file 'XXXX.csv' in zip file 'c:\yyy\temp\bla\'


download.file(paste("http://web.com_",units[i],"_",places[j],".zip",
                     sep=""),
                     temp,
                     cacheOK = F )
data <- read.csv2(unz(temp,
                   paste("name_",units[i],"_",places[j],".csv",
                   sep="")),
                   header=F,
                   skip=1)
unlink(temp)
fili<-rbind(X,
            data)

}

Rに必要なファイルを見つけさせるにはどうすればよいですか?

4

2 に答える 2

1

あなたには正しいアプローチがありますが、(警告が示すように)間違ったファイル名です。

内容を読み始める前に、zipファイルが存在することを再確認する価値があります。

if(file.exists(temp))
{
  read.csv2(unz(...))
} else
{
  stop("ZIP file has not been downloaded to the place you expected.")
}

また、ダウンロードしたファイル内を参照して(最初に解凍することをお勧めします)、CSVコンテンツの適切な場所を探していることを確認することもお勧めします。

于 2012-05-24T08:34:53.203 に答える
0

これから読むファイルはディレクトリにあるようです。この場合、読み取り値は次のように変更する必要があります。

data <- read.csv2(unz(temp,
                   paste("**dirname**/name_",units[i],"_",places[j],".csv",
                   sep="")),
                   header=F,
                   skip=1)
于 2013-01-28T08:11:38.433 に答える