2016-08-04 8 views
2

それぞれ50枚のExcelファイルがあります。私は各ファイルから1枚を読み込もうとしています。私が読もうとしているシートの場所と名前はファイルごとに異なります。しかし、各ファイルのシート名(私が読もうとしている)には常に "validate"という単語が含まれています。ですから、100ファイルからvalidateという単語を含むシートを読み込もうとしています。これは正規表現( "grepl"のように "validate"という単語を含むシートを選択する)を使用する必要があります。私はこれが可能かどうかを知りたい。私の知る限り、read_excelとxlsxパッケージはこれを許可していません。私はreadxlは、タスクのこのタイプの方がはるかに簡単であることを発見したシート名に正規表現を使用しています。

library(xlsx2) 
files<-paste0("file",1:100) 
lapply(files, function(i){ 
      read.xlsx2(
      paste0(i,".xlsx"),sheetName=grep("validate", ??,value=TRUE))}) 
+4

多分、http://stackoverflow.com/q/17944777シート名をつかみなさい;すべてのファイルに必要なファイルを特定します。 2回目に掃引して読んでください。 – Frank

+0

リンクのための@Frankありがとうございました。 – user227710

答えて

0

を::

まず私はExcelでいくつかの偽のデータを作った後、名前をチェックして、タブに読み込むファイルIは、以下のようなものが欲しいです興味のある:

sheets <- readxl::excel_sheets("test_38757844.xlsx") 

for(x in sheets[grepl("validate", sheets) == T]){ 
    print(x) 
    validate_x <- readxl::read_excel("test_38757844.xlsx", x) 
    print(head(validate_x)) 
} 
[1] "validate1" 
    1 A 
1 2 AA 
2 3 Sas 
3 4 SAS 
4 4 GDD 
5 5 ASD 
6 6 asd 
[1] "validate2" 
    1 a 
1 2 s 
2 3 s 
3 4 d 
4 5 d 
5 6 f 
6 7 g 
関連する問題