2017-07-20 5 views
0

かなりたくさんの異なるファイルを扱っているので、私はそれらをループで読みたいと思います。 csvファイルでうまく動作しますが、xlsxファイルを読むときに問題が発生しました。私のデータセット内の列のlapplyのread.xlsxにdetectDates = TRUEを渡す

library(openxlsx) 
allFiles <- list.files("path", full.names = T) 
allFiles <- lapply(allFiles, read.xlsx) 

一つは、私は上記のコードを実行したときに自動的に奇妙な数字のセットに変換された日付が含まれています。 (。それ以外は、すべてが正常に働いていた)だから私は、関数に別の引数を渡してみました:これはエラーメッセージが返さ

allFiles <- list.files("path", full.names = T) 
allFiles <- lapply(allFiles, read.xlsx, detectDates = TRUE) 

Error in file(description = xlsxFile) : invalid 'description' argument 

を私が上でそれをしようとしたときそれはしかしうまく働きました単一のファイル:さらに、不思議なことに、私は、引数を削除し、

を実行しようとしたとき

read.xlsx("path", detectDates = TRUE) 

前に動作していた0

allFiles <- list.files("path", full.names = T) 
allFiles <- lapply(allFiles, read.xlsx) 

と同じエラー(無効な 'description'引数)を返しました。数時間後、RStudioをシャットダウンして再起動した後、再び動作しました。 detectDates = TRUE引数を試してみると、プロセス自体が繰り返されています。 私はいくつかのオンラインディスカッションで、XLConnectが時々このようなことに役立つことを読んだが、残念ながらそれをロードすることができませんでした(rJavaをインストールする必要があります。

すべてのファイルを個別に読み込むか、csvに変換するまでに時間がかかります。誰もこれに遭遇したのですか、解決策を知っていますか? lapply()への次の呼び出しで

答えて

0

allFiles <- lapply(allFiles, read.xlsx, detectDates = TRUE) 

私はあなたが実際にlapplyなくread.xlsxの引数としてdetectDates = TRUEを渡していると信じています。次のように電話番号を変更することができます。

allFiles <- lapply(allFiles, function(x) read.xlsx(x, detectDates = TRUE)) 
+0

ありがとう、魅力的なように働いてくれてありがとう! –

関連する問題