read.xls()
パッケージからgdata
、各ワークブックに1枚のシートがあるExcelワークブックを読むために使用しています。読み取りは次のエラーで失敗します。
> read.xls(list.files[[1]])
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
no lines available in input
エラーがわかりません。sheetCount()
次のエラーを返します。
> sheetCount(list.files[[1]])
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line 161 did not have 13 elements
しかし、これは奇妙なことです。ワークブックには27列あるからです。また、行161+/-1または列13+/-1については、異常なことは何もありません。
ワークブック全体で繰り返されるエントリは空白であり、手動で拡張する必要があります(これは、私が読みたい750以上のワークブックには実用的ではありません)。
とを手動で設定quote=''
してみquote='\''
ましたが、出力が変わりません。read.xls()
一部の行が不規則であると見なされるが、他の行は表示されないという私の問題はありますか?ポインタはありますか?(パッケージを試しましたxlsReadWrite
が、64ビットのWin 7を使用しており、32ビットシステムでのみ動作します)。
ありがとう!
アップデート
@Gをフォローしました。グロタンディークの提案と以下を取得します。
> k <- count.fields(xls2csv(list.xls[[1]]), sep = ","); k
NULL
> L <- readLines(xls2csv(list.xls[[1]])); L
character(0)
生成される一時ファイルが空であるため、呼び出しで「行161、列13」エラーが返さxls2csv()
れる理由がわかりません。countSheets()
また、@ Joranの提案に従い、Libre Officeで.xlsファイルを.csvファイルに変換すると、変換と読み取りが正常に行われます(つまり、236行すべてと論理readLines()
出力で27フィールドがカウントされます)。
アップデート2
これらの.xlsファイルはExcelによって生成されたものではないと思いますが(私のソースはそれらの出所について少し秘密です)、LibreOfficeで開いたときにエラーや警告は表示されません。