2016-05-17 6 views
0

私はいくつかのExcelレポートを管理していますが、私は前処理を行い、出力レポートを作成するためにRを使用します。私がしなければならないことは、R関数を実行してレポートを配布し、レポート作成の残りの部分を非アクティブな時間にするだけなのですばらしいことです。レポートは普及するのが最も簡単で、視聴者は大規模で技術的ではないため、レポートはExcel形式である必要があります。データは事前​​に処理されると、私はこの非常に、非常に単純XLConnectを使用してください:私は、新しいデータを書き込もうとしたときにXLConnect 'envir'エラー

file.copy(from = template, 
      to = newFileName) 

writeWorksheetToFile(file = newFileName, 
        data = newData, 
        sheet = "Data", 
        clearSheets = T) 

しかし、私のレポートの一つは、このエラーを投げ始めた:

Error in ls(envir = envir, all.names = private) : 
invalid 'envir' argument 

さらに、エラーをスローする前に、関数は15分間Rを束縛します。通常の書き込み時間は10秒未満です。私は告白しなければならない、私はこのエラーが何を意味するのか理解していないし、私の通常のデバッグ方法や他のSOソリューションには負けていない。

私は、rJava(このパッケージの再インストールは動作しませんでした)とログファイルのJavaキャッシュ(これがMac上のどこにあるのかわかりません)を参照していることに気付きました。私は特に、同じプロセスを正確に使用して1日前に問題がなくなり、全く同じプロセスを使用している他のレポートは正常に動作するため、混乱しています。

Java、R、またはOSを更新していないか、Rコードのデバッグ/書き換えを行っていません。だから、最初から始めて - どうすればこの「envir」エラーを調べることができますか?あなたが私の靴の中にいたらどうしますか?私は数日間このことに取り組んできました。私は困惑しています。 (下)私の前の答えは、実際には、(この断続的なエラーを修正しませんでした:

は、私はそれが自分自身よりも、目の肥えたのプログラマー:)

答えて

0

更新のためのより良いコンテキストを提供する場合は、余分な情報を提供するために満足していますOPが指摘しているように、Javaの依存関係のためにunpickするのは非常に難しい)。代わりに、私はhereのアドバイスに従い、XLConnectパッケージからopenxlsxに移行しました。これは問題を完全に回避します。

前の返信数: 私は、明らかな間欠性と、ブックを書くときに数分間Rを縛るなど、しばらくの間、このエラーに苛まれました。

Excelワークシートの名前の長さが31文字に制限されているように見え、Rコードがこの制限を超えてワークシート名を生成していたことがわかりました。

私はExcelブック内の個々のタブ付きシートの名前を参照していますが、ブック自体のファイル名ではありません。

各ワークシート名を31文字以下に調整すると、このエラーが修正されました。

関連する問題