2017-10-26 9 views
1

不明な枚数のExcelワークブックを読み込み、各シートを変数の一部として保存しようとしています(結果[1]はシート1、結果[2]はシート2などを与える)。私はXLConnectパッケージを使ってそれを行う方法を見つけようとしました(これはLinux上で正しく動作するようになっています)。ほとんどすべてのR大会が壊れていたことに気づいたときに止まった....誰にもXLConnectパッケージを使った方が良い解決策があるのだろうか?リスト内のdata.framesを分離するためにワークブックの内容を保存する

require(XLConnect) 

demoExcelFile <- system.file("demoFiles/multiregion.xlsx", package = "XLConnect") 

endloop<<-F 
x<<-1 
result<<-NULL 
while(!endloop){ 
    result[x] <<- tryCatch({ 
    readWorksheetFromFile(demoExcelFile,sheet=x) 
    x<<-x+1 
    }, error = function(e) { 
    endloop<<-T 
    }) 
} 

注:私は他のパッケージを使用することに開いている、私はちょうど私がtidyverseからreadxlを使用することをお勧めします64ビットLinuxのミント

答えて

1

シート名をリストする機能を持つreadxlパッケージを使用します。

library(readxl) 
library(purrr) 

# get the sheet names 
sheetnames <- excel_sheets("path/to/myfile.xlsx") 

# loop through them and read each sheet into an item in a list. 
# alternatively, use lapply() instead of map() 
listofsheets <- map(sheetnames, ~ read_excel("path/to/myfile.xlsx", sheet = .x)) 
+0

固定そのアップ - ヘッドアップに感謝! – crazybilly

0

に確実に動作別のものを見つけることができませんでした。

library(readxl) 
sheets <- excel_sheets("insert_filepath/workbook.xlsx") 

data <- list() 
for (i in 1:length(sheets)) { 
    data[[i]] <- read_excel("insert_filepath/workbook.xlsx", sheet = sheets[i]) 
} 

私はあなたのExcelファイルを持っていないので、あなたのデータを正確に再現することはできません。しかし、これは、Excelファイル内のすべてのシート名を見つけて、各シートをループして 'データ'というリストに読み込む一般的な解決方法である必要があります。

0
require(XLConnect) 

# Load workbook 
wb <- loadWorkbook(system.file("demoFiles/multiregion.xlsx", package = "XLConnect")) 

# Read all worksheets into a list of data.frames 
listOfDfs <- readWorksheet(wb, sheet = getSheets(wb)) 
関連する問題