4

私はRスクリプトにUIを書き込んでいます。これは、ローカル(ホストされていない)のjavascript / htmlを使用して、ユーザーに生物の名前とフォルダーの場所を尋ねます。

現時点では、それだけです。入力を受け取り、実行可能なRスクリプトを渡すテキストボックスがいくつかあります。もともとこのUIは非常にユーザーフレンドリーなオプションとして書かれていましたが、ユーザーの単語を完成させるテキストボックスなど、いくつかの気の利いたトリックを追加できることに徐々に気づきました(したがって、ユーザーが生物の名前のつづりを間違えた場合、 UIは、アップロードされたファイルに基づいて入力を修正します。これは、ファイルが追加されるとすぐにRが生成する生物のテキストファイルのリストから取得されます)。

これをより効率的にする方法はありますか?たとえば、Rからプロットを取得し(.pngとして)、ローカルWebページを更新し、RとUIの間でログファイルを共有できるようにします(ファイルI / Oエラーの可能性を認識しています)。ブレーンストーミングのために。

私はShinyを知っていますが、ビッグデータ(スクリプトが処理する平均約1ギガバイト相当のファイル)を処理するため、単純なローカルUIが必要です。

もっと重要な私の質問をする別の方法:

PHPとRを統合する例を次に示します。http : //www.r-bloggers.com/integrating-php-and-r/ javascript / css / html/jqueryなどに似たものを作成しようとしています。

ありがとう

4

3 に答える 3

1

私にも同様のケースがあり、光沢のあるものは良いアイデアのように思えました。ただし、いくつかの最初の手順を実行した後、これについては確信が持てなくなりました。ほとんどの例では、光沢を使用して結果を表示していることに注意してください。いくつかのフィールドを編集してデータベースを使用すると、面倒になることがあります。プログラムやユーザーがフィールドを変更できるようになると、反応性が邪魔になります。

例として、 https://gist.github.com/dmenne/4721235/editを参照してください。光沢のある現在の状態の主な問題は、このタイプの作業に動的 UI を使用する必要があることです。これにより、サーバーで UI 要素を作成する必要があるため、UI とサーバーの分離が失われます。

光沢のあるものは素晴らしいアイデアですが、インタラクションを伴うより大きなものについては、まだ時期尚早です。素晴らしい RStudio チームがその背後にいることを知っているので、ストレスは今にかかっているはずです。

R のユーザー インターフェイスを作成するために他に何がありますか? TclTk は私を身震いさせます。私は C# をよく使っていて、数年前からインターフェイスに R(D)COM を使用していましたが、インストールとライセンスの問題で断念しました。現在はより適切に機能する R.DOTNet があります。これは、インストールに関しては最も手間のかからないものですが、あまり活発なプロジェクトではなく、クラッシュする傾向があります。RServe/RServeCLI を介したインターフェースは安定していますが、Windows にインストールするには難しすぎます。たとえば、セキュリティ上の問題が厳しい病院のコンピューターなどです。

そしてQtがあります。アクティブな RInside コミュニティでは、良い選択であり、インターフェイスも優れています。しかし、私のプログラミング スキルが RStudio の人たちのレベルにあればよかったのにと思います。Dirk でさえ概念実証レベル ( windows で qt と rinside を使用) の 1 つであるという事実は、心強いものではありません。

于 2013-02-12T08:53:39.317 に答える
1

そのためには間違いなくnodejs(nodejs.org)を使用できます。https://github.com/elijah/r-noder-nodeを見てください。紛らわしいことに、これは同じ名前の 2 つの異なるプロジェクトです。後者の詳細については、こちらをご覧ください: squirelove.net/r-node/doku.php

近年、JavaScript は最速のプログラミング言語の 1 つになりました。私が知っている 1 つのケースでは、JavaScript は C++ よりも高速です。参照: ベンチマークゲーム.alioth.debian.org/u32/performance.php?test=regexdna

ただし、JavaScript でメモリを管理するのは非常に難しいため、長時間実行されるプロセスを作成する予定がある場合は、何らかのメモリ リーク検出プログラムをコードで実行する必要があります。EI: memwatch (npmjs.org/package/memwatch) または nodeheap (npmjs.org/package/memwatch)

あなたの努力を頑張ってください!

PS。本当のリンクがなくてすみません。どうやら2つ以上のリンクを投稿することは許可されていません。

于 2013-02-11T00:10:02.470 に答える
1

Shiny をローカルで使用できないのはなぜですか? コンピューターでアプリを設計し、R プロンプトから runApp('myapp') を使用してローカルで実行します。あなたがJavaScriptの経験がない限り、私は光沢のある別の外観を与えるでしょう: http://www.rstudio.com/shiny/

リンク先の例は、Shiny を使用して非常に簡単に実装できます。アプリの作成方法に関するチュートリアルについては、以下のリンクを参照してください。

http://rstudio.github.com/shiny/tutorial/#hello-shiny

その例をローカルで実行するには:

install.packages('shiny')

光沢のある::runExample('01_hello')

于 2013-02-10T22:49:25.137 に答える