問題タブ [xlconnect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - XLConnect が空のセルでエラーを引き起こす
特定のセルを読み取る必要がある Excel スプレッドシートがたくさんあります。すべてのワークブックとワークシートを通過するループを作成しましたが、単純化するために、以下の質問ではループを省略しました。
すべてのワークシートまたはセルにデータが入力されるわけではありませんが、セルが空白の場合、XLConnect は空のデータ フレームを返すため、エラーが発生します。
再現するにxlsx
は、作業ディレクトリに というファイルを作成しますtestFile.xlsx
。で、セルとにSheet1
必要なものを入力し、ファイルを保存して閉じます。次に、以下のコードを実行します。A1
B2
最初は次のように返されます。
2 番目は以下を返します。
これを機能させる方法はありますか?検索したところ、 に機能がXLConnect
あることがわかりましたが、SetMissing
to のような文字列を定義するためのもののようblank
ですNA
。
java - R - xlsxjars、64 ビット Windows をインストールできませんが、i386 を読み込もうとしています
私はあまりにも長い間この問題に取り組んできましたが、どんな助けも歓迎します。最後に rJava をインストールしてロードし、その一環として 64 ビットの JRE と JDK をインストールしました。R バージョン 3.2.2、64 ビット、64 ビット Windows 7 で実行されています。xlsxjars (xlsx パッケージ用) をインストールしようとすると、長いエラーが発生します。
私は i386 と 64 のアーキテクチャに固執していますが、それが現在の核心の問題かどうかはわかりません。JAVA_HOME を以下のアドレスに手動で設定し、= "" としても設定しようとしましたが、どちらの方法でも同じエラーが発生します。
問題は解決するがサイコロは解決しない場合に備えて、32ビットJDKもインストールしました。回避策として XLConnect をインストールしようとしたところ、同様のエラーが発生したため、これは xlsxjars よりも Java に関するものである可能性があります。
r - Rが共有オブジェクトを読み込めないのはなぜですか?
XLConnect
Rでライブラリを使用しようとしています。実行すると
次のエラー メッセージが表示されます。
この問題を解決するために、最初にJAVA_HOME
変数を設定しました。
それは私がさらに進むのに役立つように見えますが、別の問題が発生します:
なぜ R がロードできないのか不思議rJava.dll
です。少なくともこのファイルは、R が検索するフォルダーにあります。
追加した
rJava.dll
ファイルが存在し、R が検索している場所にあることに注意してください。問題は 32bit 版と 64bit 版の非互換性にあると思います。Rが不平を言うので、私はそれを仮定します:
では、なぜ RWin32 application`? First, my OS is 64bit, second my Java is also for the 64bit and finally, the `rJava.dll` object is located in the folder with
は名前に x64` を期待するのでしょうか (つまり、64 ビット バージョンでもあると思います)。
vectorization - R の XLConnect は writeNamedRegion() 用にベクトル化されていますか? その構文は何ですか?
可能であれば、ベクトル化を使用して R から XLConnect を使用して、Excel ワークブックの複数のシートで NamedRegions に書き込みたいです。
リストがあります: trya $grp1 var1 var2 var3 1455100 459 21 459
$grp2 var1 var2 var3 936710 463 20 463
namedRegions (それぞれが単一のセル) を含むワークシート (Sheet1) を含むワークブック テンプレート (wb1) があります。Sheet1 の namedRegions の名前は、「varn1」、「varn2」、「varn3」です。
Sheet1 のクローンを作成して、trya の各グループのデータを含む個別のシートを作成できます。
cloneSheet(wb1, sheet="Sheet1", name = names(trya))
しかし..これらのシートの NamedRegions にどのように書き込むのですか? NamedRegion ごとに 1 つずつ、3 つの個別のパスを使用して、複数のワークシートに書き込みます。NamedRegion "varn1: コード例の使用は writeNamedRegion(object,data,name of region,header,rownames) です
writeNamedRegion(wb1, trya??? ,name = "varn1",header = FALSE)
わかりません 1. 一般的に、trya[[1]]$var1 のような要素を選択する方法は? 2. という名前のクローンシートをループする方法....名前(trya)?
どんな助けでも大歓迎です。1月
java - エラー: パッケージ 'XLConnectJars' を Mac OS にロードできませんでした
R で「XLConnect」ライブラリを呼び出したときに問題が発生しました。
必要なパッケージを読み込んでいます: XLConnectJars JavaVM: 要求された Java バージョン ((null)) は利用できません。代わりに "" で Java を使用します。JavaVM: JVM のロードに失敗しました: /bundle/Libraries/libserver.dylib JavaVM FATAL: jvm ライブラリのロードに失敗しました。エラー: 「XLConnectJars」の loadNamespace() で .onLoad が失敗しました。詳細: 呼び出し: .jinit() エラー: JNI_GetCreatedJavaVMs が -1 を返しました
エラー: パッケージ 'XLConnectJars' を読み込めませんでした
このエラーは、XLConnect をインストールしてライブラリ (XLconnect) を作成した後に発生しました。
この問題をグーグルで検索しましたが、私の場合は適切な解決策がありません。私はすでにJava 8をインストールしており、ターミナルでJavaの場所を確認しています。Mac OS X (10.10.5) で R を実行しています
ご協力ありがとうございました。
r - XLConnect ワークブック オブジェクトをデータとして R パッケージに格納すると、エラー: NullPointerException (Java) が発生します。
私は、同僚が一連の比較的複雑なデータ処理タスクを実行できるようにするために、最初の R パッケージを作成しています。分析のデータクリーニングに役立つ多くの R 関数がありますが、ワークフローを合理化して速度を上げ、エラーを減らすいくつかのものを追加しようとしています。
ユーザーが現在実行する必要がある手順の 1 つは、後でさまざまなファイルが格納される特定の一連のディレクトリとサブディレクトリを作成することです。次に、特定のフォルダーに挿入する必要がある Excel ブック テンプレートがあります。現在、R コードを使用してディレクトリを作成できますが、ユーザーは Excel テンプレートを正しい場所に手動でコピーする必要があります。このステップを手動で行うと、テンプレートを間違ったディレクトリにコピーしたり、間違ったバージョンのテンプレートを間違った場所で使用したりして、エラーが発生しやすいことがわかったため、R 関数を使用してこれを自動的に行いたいと考えています。等
注目すべきは、R 関数で再生成しようとしている Excel ワークブック テンプレートがかなり複雑であることです。少量のデータと、多数の書式設定と非表示の式が含まれています。ワークブック テンプレートは、従来の理由からそのままにしておく必要があります。複雑であるため、基本データを入力し、フォーマットを設定し、エラーを発生させずに複雑な数式ルールを設定する R 関数を使用してテンプレートを de novo で作成できるかどうかはわかりません。
これまでの私のアプローチは、次のものを使用することでした。
myWB<-XLConnect::loadworkbook("C:/My Docs/Template.xlsx")
自分のマシンにローカルに保存した Excel テンプレートのコピーから XLConnect "ワークブック" オブジェクトを作成するためです。
新しく作成したワークブックオブジェクトstr()
を調べると、次のように表示されます。
これは、同じ R セッションでインタラクティブに作業しているときに、.xlsx テンプレートのコピーを複製するのに最適です。使うことができます:
次に、「いくつかの新しいフォルダー」に移動できます。確かに、「私のテンプレートの新しいコピー.xlsx」は、新しいフォルダー内の元のテンプレートの完全に機能するコピーです。
問題は、私のパッケージのコピーを取得することなく、私のパッケージをインストールした人のマシン上で R がワークブックを再作成するために使用できるある種のオブジェクトとして、私の Excel テンプレート ワークブックをパッケージ内に配置したいことです。 Excelファイル、どこかに保存、移動など。試したのでdevtools::use_data(myWB)
、myWBオブジェクトを.rdaファイルとしてパッケージのデータフォルダーにデータとして保存するために使用しました(内部設定をFALSEに設定してこの関数も試しましたmyWB を R/ に sysdata.rda として保存するため)。
LazyData: TRUE
次に、説明ファイルでパッケージをビルドします。XLConnect::saveWorkbook(myWB,"C:/New folder/copy of template.xlsx")
パッケージが使用する正しいディレクトリにテンプレートのコピーを作成するために使用したいと考えています。パッケージ内の関数は myWB オブジェクトを認識できるので、実際には遅延ロードされていることがわかります。調べてみると、str(myWB)
すべてがそのままのように見えます。
ただし、XLConnect::saveWorkbook(myWB,"C:/New folder/copy of template.xlsx")` を実行すると、次のエラーが発生します。
私は Java について何も知りませんが、XLConnect によって作成された myWB オブジェクトは Java オブジェクトであり、オブジェクトをデータとして R パッケージに保存するときに何か (ポインター?) を失っていると思います。
次に何を試しますか?
ありがとうございました。
PS私はスタックオーバーフローにかなり慣れていないので、良い質問をする方法を学ぼうとしています. 新しい R パッケージを作成し、Excel テンプレートのコピーを手元に用意する必要があるため、この質問の再現可能な例を作成するのに本当に苦労しました。幸いなことに、エラーは私のテンプレートの詳細とは無関係のようです。状況と私が試したことを説明する合理的な仕事をしたことを願っていますが、より良い質問を作成するためのフィードバックをいただければ幸いです.