2013-07-27 6 views
5

オンラインのZIPファイルからExcelファイルを読み取ることはできますか?RはURLから圧縮されたXLSファイルを読み取ることができますか?

私はread.csvとするだろうような何かをしようとしている:

nuts = url("http://ec.europa.eu/eurostat/ramon/documents/nuts/NUTS_2010.zip") 
xlsx::read.xlsx(unz(nuts, "NUTS_2010.xls"), 1) 
close(nuts) 

...無駄に。

+0

エラー/出力を報告する必要があります。 – Thomas

+0

はい、ごめんなさい: 'read.xlsx'は' unz() '接続を理解していません)" unknown path "を返します。 –

答えて

3

それは少し不便ですが、方法について:あなたがダウンロードしたXLSをクリーンアップすることがあります(あなたが定期的にそれをしたい場合は、必ずreadZipURL <- function(urlPath,basefn) {...}機能にこれをパックすることができます

basefn <- "NUTS_2010" 
urlPath <- "http://ec.europa.eu/eurostat/ramon/documents/nuts/" 
xlsFile <- paste0(basefn,".xls") 
zipFile <- paste0(basefn,".zip") 
download.file(paste0(urlPath,zipFile),zipFile) 
unzip(zipFile) 
## I had trouble with xlsx::read.xlsx, but gdata::read.xls was OK 
## xlsx::read.xlsx(xlsFile,1) 
gdata::read.xls(xlsFile) 
unlink(zipFile) 

)...あまりに

+0

ありがとうございますが、私はZIPファイルをダウンロードせずにそれをやろうとしています。 ZIPをディスクにコピーせずにコードが動作するような方法はありますか? –

+0

私は、unzipper *と* XLSトランスレータの両方が何をしているのか、かなり注意深く見なければならないと思います。彼らは両方ともストリーミングモードで働くことができなければならない/パイプから作業する必要があります。私は大きなZIPファイルを持っているので、ディスクにコピーしたくないと思います...?あなたは 'gdata :: xls2sep'(通常は一時ファイルを作成する)と一緒に何かをパイプに送ることができるかもしれません。これは' read.csv'が読むことができる...あまりにも厄介なものですしかし、私の暇な時間に。 –

+0

私はあなたの解決策を受け入れるでしょう - 'read.xlsx'が実際にこのように動作するかどうか分かりませんし、この場合はZIPをダウンロードするのが難しくなります。好奇心から逃れた –

2

ファイルこれは私が

に私は興味があったいくつかのCMSファイルを読んでいます

options(java.parameters = "-Xmx4g") 
library(XLConnect) 
temp <- tempfile() 
zipfile <- paste0("https://www.cms.gov/Research-Statistics-Data-and-Systems/Statistics-Trends-and-Reports/MCRAdvPartDEnrolData/Downloads/" 
        ,year,"/",year,"-", "Low-Income-Subsidy-Contract-Enrollment-by-County.zip") 
download.file(zipfile,temp) 

filename <- paste0("WEB Tables LIS by state -county ",month2,"-","1","-",year,".xlsx") 

temp1 <- unzip(temp) 
assign(paste0("scc_pdp_lis_",year),readWorksheetFromFile(temp1,sheet=1,startRow=7,header=F)) 

私のために働きました

関連する問題