問題タブ [plr]
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.
postgresql - PL/R での R モジュールと関数の読み込み、一覧表示、および使用
問題があります:
- PostgreSQL で使用できる R パッケージと関数のリスト。
- PL/R で使用するパッケージ ( Kendallなど) のインストール
- PostgreSQL 内で R 関数を呼び出す
利用可能な R パッケージの一覧表示
Q.1. どの R モジュールがロードされているかを調べるにはどうすればよいですか?
これは利用可能なタイプを示していますが、Kendall( X, Y )
ロードされているかどうかを確認するにはどうすればよいでしょうか? たとえば、ドキュメントには次のように表示されます。
これにより、レコードを挿入してKendall
ロードすることを指示できるように見えますが、次のコードでは、確実にロードされるようにする方法が構文的に説明されていません。
Q.2. ロードしようとすると、上記の行はどのようになりますKendall
か?
Q.3. 適用可能ですか?
R パッケージのインストール
「シナプス」パッケージ マネージャーを使用して、次のパッケージがインストールされています。
Q.4. ケンドールがそこにいるかどうかはどうすればわかりますか?
Q.5. そうでない場合、どのパッケージに入っているかを調べるにはどうすればよいですか?
Q.6. でのインストールに適したパッケージに含まれていない場合apt-get
( aptitude
, synaptic
, dpkg
, あなたは何を持っていますか)、Ubuntu にインストールするにはどうすればよいですか?
Q.7. インストール手順はどこに文書化されていますか?
R 関数の呼び出し
次のコードがあります。
このコードは PostgreSQL 関数を呼び出してcorr
、データに対するピアソンの相関を計算します。理想的には、次のことを行いたいと思います( に切り替えcorr
てplr_kendall
):
Q.8. 自分で書く必要がありplr_kendall
ますか?
Q.9. ウォークスルーする簡単な例はどこにありますか:
- R モジュールを PG にロードします。
- 目的の R 関数の PG ラッパーを作成します。
- SELECT から PG ラッパーを呼び出します。
たとえば、最後の 2 つの手順は次のようになります。
そして、SELECT
上記のように?
ありがとうございました!
r - R を使用したビン化された GAM 結果の二乗平均平方根偏差
バックグラウンド
PostgreSQL データベースは PL/R を使用して R 関数を呼び出します。スピアマンの相関を計算するための R 呼び出しは次のようになります。
また、R では、当てはめられた一般化加法モデル (GAM) の単純な計算:
x
これは 1900 年から 2009 年までの年を表し、その年のy
平均測定値 (最低気温など) です。
問題
次の図に示すように、近似傾向線 (GAM を使用) はかなり正確です。
問題は、相関関係 (左下に表示) が、モデルがデータにどの程度適合しているかを正確に反映していないことです。
考えられる解決策
相関の精度を向上させる 1 つの方法は、ビニングされたデータに対して二乗平均平方根誤差 (RMSE) 計算を使用することです。
質問
Q.1. ビニングされたデータに RMSE 計算を実装して、R 言語で GAM の測定値への適合の相関関係 (0 と 1 の間) を取得するにはどうすればよいでしょうか?
Q.2. GAM のデータへの適合の精度を見つけるためのより良い方法はありますか? もしそうなら、それは何ですか (例えば、二乗平均平方根偏差)?
試行された解決策 1
- 観測量とモデル (GAM) 量を使用して PL/R 関数を呼び出します。/li>
- 次のように定義
plr_corr_rmse
します (ここでo
、 とm
は観測データとモデル化データを表します)。/li>
はo - m
間違っています。mean
5 つのデータ ポイントごとにを計算して、両方のデータ セットをビンに入れたいと思います(最大で 110 のデータ ポイントがあります)。例えば:
次に、RMSE の計算を次のように修正します。
適切な数のビンで任意の長さのベクトルを計算するにはどうすればよいでしょうかc( mean(o[1:5]), mean(o[6:10]), ... )
(たとえば、5 は 67 回の測定だけでは理想的ではない可能性があります)。
hist
ここにはふさわしくないと思いますよね?
試みられた解決策 2
次のコードは問題を解決しますが、リストの最後からデータ ポイントを削除します (リストを 5 で割り切れるようにするため)。数字の「5」は魔法のようなものなので、この解決策は理想的ではありません。
他にどのようなオプションがありますか?
前もって感謝します。
sql - クエリ結果を配列に返す
次のコード スニペットは、PL/R 関数に渡される 3 つの配列を作成します。
配列は次のように宣言されます。
むしろCREATE TYPE
、各要素に 3 つの値を含む 1 つの配列を使用して渡したいと思います。
を使用しないように、これをどのようにコーディングしますFOR ... LOOP
か?
PL/R 関数の最初の行は次のとおりです。
SELECT
そのコード行を削除して、クエリを簡素化したいと思います。
ありがとうございました。
perl - PL/R の R 関数から複数の異なるデータ構造を返す
ここで SO や他の場所に関するさまざまな議論を見てきましたが、一般的なコンセンサスは、R 関数から複数の類似していないデータ構造を返す場合、それらは として返され、list(a, b)
次にインデックスによってアクセスされる0
などの1
ようです。の上。ただし、Perl プログラム内で PL/R を介して R 関数を使用する場合、Rlist
関数はリストを平坦化し、数値も文字列化します。例えば
返される 2 つの配列が対称ではなく、関数が鳴るので、 a を使用してdata.frame
も機能しません。
では、ネストされたデータ構造の任意のセットで構成される R 関数から単一のデータ構造を返し、Perl から個々のバンドルに単純$res->[0]
に 、$res->[1]
または$res->{'employees'}
としてアクセスできるようにするにはどうすればよい$res->{'pets'}
でしょうか? 更新: Perl の R equiv を探しています[[1, "foo", 3], [2, "bar"]]
。[[1, "foo", 3], {a => 2, b => "bar"}]
補遺: 私の質問の主な目的は、PL/R 関数から複数の異なるデータ構造を返す方法です。ただし、データを JSON に変換すると、サーバーとユーザーの間で転送される無駄なデータに余分な引用符が追加されるため、上記の文字列化と二次的な文字列化にも問題があります。
r - plr の呼び出し間の永続的なデータ ストア
適応テストを行うときに plr を使用して R と通信する Web アプリケーションがあります。呼び出し間で静的データを永続的に保存する方法を見つける必要があります。
各応答送信後に次のアイテムを取得する多くの安価なアイテムバンクよりも、アイテムバンクを作成するコストの高い計算があります。ただし、現在、高価な計算の結果を永続的に保存する方法が見つかりません。
それをデータベースに入れると、多くのオーバーヘッドがかかるようです。
このように結果を保存して読み込もうとしましたが、うまくいかないようで、2 番目の NOTICE の結果は「itembank」です。
ワークスペースも保存してロードしようとしましたが、それも成功しませんでした。これを行う方法はありますか?
windows - Windowsにplrをインストールする
Windows 7(32ビット)にPostgresql 9.0があります。plr-8.3.0.13-win32をダウンロードしました-抽出し、dllをその場所に配置し、env変数を編集し、plr.sqlコマンドを正常に実行しました。
ただし、R と直接やり取りする必要があるクエリを実行しようとすると、クエリがフリーズします (実行が停止することはなく、キャンセルすることさえできません)。
私は今、2つの異なるWin7マシンで同じ経験をしました。1つは32ビット、もう1つは64ビットで、Postgres 9.1でも同様です。ここで何か間違ったことをしていると確信していますが、何がわかりません。
これを解決する方法があれば教えてください。どうもありがとう。
postgresql - postgres 9.2 にインストールした後、PL/R が共有ライブラリを見つけられない
root アクセス権がない Linux サーバーでPL/Rを実行しようとしています。インストール自体は、以下のコマンドを使用して正常に機能します。
LD_INCLUDE_PATH="$HOME/pgsql/include" LD_LIBRARY_PATH="$HOME/pgsql/lib:$HOME/lib/R/lib" PGDATA="$HOME/usr/pgsql/data" PG_LIB_DIR="$HOME/pgsql/lib" R_HOME="$HOME/lib/R" USE_PGXS=1 make
ただし、 plr 拡張機能をデータベースに追加しようとするとCREATE EXTENSION plr;
、次のエラーが発生します。
ERROR: could not load library "~/lib/postgresql/plr.so": libR.so: cannot open shared object file: No such file or directory
インストール ドキュメント ページの下部で、ライブラリ パスを LD 構成ファイルに追加する必要があることを読みました/etc/ld.so.conf
が、ルート アクセス権がなく、このファイルを変更できません。
これに対する回避策はありますか?
前もって感謝します
postgresql - PostgreSQL手続き型言語「C」が見つかりません
PostgreSQL9.2データベースでPL/R手続き型言語を使用しようとしています。言語をインストールplr
し、データベースに追加しようとしています。コマンドを実行するCREATE EXTENSION plr;
と、次のエラーが発生します。
データベースで利用可能な言語をリストするとselect * from pg_language;
、
したがって、言語はありますc
が、大文字ではありません(それが違いを生むかどうかはわかりません)。
拡張機能が手続き型言語plr
を見つけられないのはなぜですか?C
macos - Mac Lion への PLR のインストール
OS X 10.7.5、Postgres 9.2、および R 2.15.2 を実行している MacBook Pro に PL/R 8.3.0.13.1 をインストールしようとしています。Webで Windows 用のステップバイステップ ガイド を見つけましたが、Mac 用のものは見つかりませんでした。
[公式ドキュメントとして] ( http://www.joeconway.com/plr/doc/plr-install.html ):
出力:
明らかに、R_HOME、変数、および/または場所を作成する必要があることを意味します...
それを行う方法はありますか?
osx-mountain-lion - PL/R を Mountain Lion にインストールするには? 検索を間違ったパスにしますか?
PL/R を Mountain Lion 10.8.2 にインストールしようとしています。r-project から R 2.15.3 をインストールし、KyngChaos から PostgreSQL 9.1 をインストールしました。http://www.joeconway.com/plr/から PL/R 8.3.0.14 を入手しました。展開したフォルダーを /usr/local/pgsql/share/contrib に置き、そのフォルダーに cd しました。
環境変数 $R_HOME および $CUSTOM_COPT は、http://www.joeconway.com/web/guest/pl/r/-/wiki/Main/Installation_Macの指示に従って.bash_profile に書き込むことで設定され、/library も追加されます。 /frameworks/r.framework/resources/bin を同じファイルに書き込んでパスに追加します。
XCode 4.6 とコマンド ライン ツールがインストールされます。stdio.h を含む標準 C ヘッダー ファイルの複数のコピーがあります。たとえば、/usr/include/stdio.h があります。
次のステップは次のようです。
それはうまくいきませんでした。
そして、より多くのエラーをページングします。
make-isysroot
が標準ヘッダーファイルの間違った場所を探しているようで、それらを見つけることができないようです。この/developer.../macosx10.6.sdk
パスは私のマシンには存在しません。これは、現在のバージョンの Xcode の標準であると考えています。
だから、質問:
このフラグは/plr 内のMakefileによって何らかの方法で設定されていますか、それとも別の場所で設定されていますか? いずれにせよ、 makeが必要なヘッダー ファイルを見つけられるように変更するにはどうすればよいでしょうか。それを変更することが本当に正しいことなのですか?