R関数を使ってアプリケーションを作成する方法<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
私はJMPに不慣れなので少しでも苦労しているので、どんな助けにもとても感謝しています!
私はRコードで書いた関数からJMPでツールを作成したいのですが(それはアドインでしょうか?)。
それは可能ですか?私はそれがあると読んだことがありますが、私はどこから始めるべきかさえ知りません。
このツールは、3つのファイルパスを入力してRファンクションに使用させるようにユーザーに依頼するために必要です。
ご協力ありがとうございました
再:どのようにRの関数を使用してアプリケーションを作成する結局私はアドインビルダー(JMPerケーブルニュースレターの14ページの終わり)を使いました。これはかなりうまくいっていて、とても簡単でした!
再:どのようにRの関数を使用してアプリケーションを作成するそれはもちろん、今のところ私はJMP 10の試用版しか持っていないということです...
私は来週の終わりに本当のことをするつもりです、それで私はそれからもう一度やります。
再:どのようにRの関数を使用してアプリケーションを作成する私はステップ3で立ち往生している、何も起こっていないようです...
私は何か悪いことをしているに違いない。
新しいスクリプトを開いて入力した
registerAddin(
"com.myCompany.myAddin"、
"C:/ Users /.../デスクトップ/ myAddinFolder"
;
実行しても何も起こりません。
何かが起こると思われるので、ステップ4に進むことができますか。
ご協力ありがとうございました
再:どのようにRの関数を使用してアプリケーションを作成する最近のJMPerケーブルの14ページに、アドインの作成についての説明があります。
http://jmp.com/about/newsletters/jmpercable/pdf/27_winter_2011.pdf
私はケーブルの指示が思いついたものより少し良いかもしれないと思います。 私は自分の組織内の誰もがドライブの割り当てやその他何もしなくてもインストールできるアドインを作成するための手紙に従っています。
Cableの説明に加えて私がすることの一つは、アドインを登録してメニューやツールバーをカスタマイズしたら、一番上の 'Change'ボタンを押して現在作っているアドインを選択することです。のためのメニュー/ツールバーとそれは作業フォルダにカスタマイズを保存します。
お役に立てれば。
再:どのようにRの関数を使用してアプリケーションを作成する私は物事を動かしています、私がちょうどちょうど望む方法ではなく、とにかくまともな最初のドラフト。
スクリプトからツールを作成する方法(「ツールバーのボタン」)を教えてください。
ありがとうございます。
再:どのようにRの関数を使用してアプリケーションを作成するはい、それは完璧に機能します。ありがとうございます。
再:どのようにRの関数を使用してアプリケーションを作成するNames = {{"t1"、"t2"}}の場合Names [1]を試してください - それはリストをリストの中にネストさせるべきです。
再:どのようにRの関数を使用してアプリケーションを作成するわかりましたので、問題は私のスクリプトでは1つではなく2つの "{"があることのようです...
Names = {"t1"、"t2"}とNames = {{"t1"、"t2"}}をテストしました。
だから私はそれを修正する方法を試してみる必要があります。
そのために残念!
再:どのようにRの関数を使用してアプリケーションを作成するこれはNames = {"test1"、"test2"、"test3"}で完璧に動作します。
しかし、私が自分のスクリプトの中でNamesの上にマウスを持っていくと、それは私を示しています:
お名前
{{"V1"、"V2"、
...............
私はそれがリストを含んでいたことを意味するためにそれを取った、そしてTestsはRのリストである(私は確かに行Tests <-as.list(Tests)さえ加えた)。
多すぎるアイテムがあるのでしょうか。ウィンドウを大きくするためのパラメータを設定しましたが、違いはありませんでした。
それ以外に、私は自分が何をしているのか本当によくわかりません。
再:どのようにRの関数を使用してアプリケーションを作成する名前にリストが含まれていますか?
コードの最初の行をNames = {"test1"、"test2"、"test3"}に置き換えてみてください。
これでJSL部分があなたが望むように働いていることを確認するでしょう、そしてあなたはRGet関数から戻ってきているものを見ることができます
再:どのようにRの関数を使用してアプリケーションを作成するありがとうDave!
私は必要なものによく対応するので、最後にリストボックスを使用することにしました。
だから私は今これを持っています:
名前= R Get(テスト);
nw =新しいウィンドウ( "テスト"、<<モーダル、
Vリストボックス(
チェックボックス(名前、<<選択して取得)、
Hリストボックス(
ボタンボックス( "Ok"、tname = Names <<テキストを取得; cancel = -1;)、
ボタンボックス( "キャンセル"、cancel = 1;)
)
)
;
if(cancel!= - 1、Stop(););
しかし、何らかの理由で、私のウィンドウには "Names"リストの最初の項目しかありません。私は名前をチェックしました、そしてそれは私がそれに入れた30の何かアイテムをすべて含んでいますので、私は本当にこれが起こっている理由を理解していません...
再:どのようにRの関数を使用してアプリケーションを作成するVリストボックス機能は、コンマで区切られた1つ以上の表示ボックスを受け取ります。 そのため、チェックボックスの行では、セミコロン(;)をコンマ(、)に置き換えます。
- デイブ
再:どのようにRの関数を使用してアプリケーションを作成するありがとう、
これはとてもうまくできていて、とても便利です!
しかし、私は問題を抱えており、どこにも答えが見つからないようです。
私は名前のリストを持っています、そして私はユーザーが1つの名前を選ぶことができる新しいウィンドウを作成したいです。
私はこれを試しました:
名前= R Get(テスト);
nw =新しいウィンドウ( "テスト"、<<モーダル、
Vリストボックス(
チェックボックス(名前)
Hリストボックス(
ボタンボックス( "Ok"、tname = Names <<テキストを取得; cancel = -1;)、
ボタンボックス( "キャンセル"、cancel = 1;)
)
)
;
if(cancel!= - 1、Stop(););
私は私がここで何か悪いことをしているに違いないと知っていますが、私はただ何を理解できないのですか...
チェックボックスのリストがあるウィンドウが表示され、その下にある[Ok]と[Cancel]が表示されることを期待していましたが、[Ok]と[Cancel]だけが表示されます。
私はどんな助けにも非常に感謝します。
再:どのようにRの関数を使用してアプリケーションを作成するあなたはここでいくつかの役に立つものを見つけるかもしれません
http://www.pega-analytics.co.uk/learning-zone/jmp-r-integration/
再:どのようにRの関数を使用してアプリケーションを作成するおっと! mewing@eastman.com
再:どのようにRの関数を使用してアプリケーションを作成するそれはとして登場します...
あなたが私に空白のEメールを送るならば、私の上にあります、そして、私はコードであなたを送ることができます
再:どのようにRの関数を使用してアプリケーションを作成するもちろん、あなたが私の名前の上にカーソルを置くと、あなたは私のEメールアドレスを見るべきです。
再:どのようにRの関数を使用してアプリケーションを作成するおかげで、私はアイデアを得始めている
私のRスクリプトは3つの関数で構成されています、
-read_table(ファイル、n)
-Summary_Table(ファイル1、ファイル2、ファイル3、n)
-Test_tables(ファイル1、ファイル2、ファイル3、n、t)
ここではnとtを取得する方法を説明しますが、異なるファイルを取得する方法を説明します(ユーザーが事前に選択したファイルであるため、path = Pick File( "どのファイルを使用しますか?")を使用します)。?
あなたが私がやろうとしていることのより良い考えを持つことができるように私はあなたにR-スクリプトを電子メールで送ってもらえますか?
再:どのようにRの関数を使用してアプリケーションを作成するあなたの質問はばかげているわけではありません、誰もがかつて新しいものでした(それを発明した人々を除く)。
以下のようにRで関数を書いたとしましょう。
r6 <- 0
k <- 6
for(i in 1:100000){
x <- rnorm(k+1)
m.i <- 1
for(j in 2:(k+1)){
if(m.i==1&x>x[j-1]){m.i <- 1}else{m.i <- 0}
}
m.d <- 1
for(j in 2:(k+1)){
if(m.d==1&x
}
r6 <- r6+m.i+m.d
}
perc.ooc <- r6/100000*100
これは単なるランダムな正規(0,1)分布から6つの点がすべて増減する確率を推定するスクリプトです(これは私が今使っているものに関係しています) 。 ユーザーにこのルールの 'k'値を6から自分の好きなものに変更させたいとしましょう。 私はこれに取り組むことができる2つの方法があります、しかし私はちょうど上のすべてのツールを使うものを示すつもりです。
まず、ユーザーに値の入力を求めるダイアログウィンドウがあります。
nw = New Window("Value for k?",<
kval = k << Get();
今、私はその値をRに送ります:
rconn << Send(kval,R Name("k");
さて、私のRセッション(これはユーザーには見えません)には、ダイアログボックスでユーザーが指定した値を持つ 'k'という変数があります。
今私は私のコードを実行したいです。
rconn << Submit("
r6 <- 0
for(i in 1:100000){
x <- rnorm(k+1)
m.i <- 1
for(j in 2:(k+1)){
if(m.i==1&x>x[j-1]){m.i <- 1}else{m.i <- 0}
}
m.d <- 1
for(j in 2:(k+1)){
if(m.d==1&x
}
r6 <- r6+m.i+m.d
}
perc.ooc <- r6/100000*100
");
注:私は自分のコードからlike k < - 6を削除しました。すでにその情報をRに送信しているからです。最後のステップは、パーセントを制御不能にすることです。
percentOOC = R Get(perc.ooc);
この情報を新しいウィンドウに表示することができます。
nw = New Window("Results",Show Menu(0),Show Toolbars(0),Text Box("Percent out of control is " || Char(percentOOC) || "%"));
現在は、これらすべてがJSLスクリプトファイルに格納されているので、Rスクリプトウィンドウを開く必要はありません。
それでも問題が解決しない場合は、Rスクリプトを投稿できますか(ここかPM PMのどちらかにしてください)。
ボタンとして追加する限り、それは非常に簡単ですが、私たちがあなたのスクリプトが動いた後にそれをする方法をポストするつもりです。
再:どのようにRの関数を使用してアプリケーションを作成するご協力ありがとうございました!
しかし、私はまだいくつかの問題を抱えています。私が本当にこれに慣れていないと言ったので、私が見逃している簡単なことがあるかもしれません...
私がこれを使うならば:
rconn << Submit( "name.in.R < - " || Char(JMP変数));
rconn <<送信する( "
出力< - R.関数(name.in.R)
sapply(出力、平均)
");
"name.in.R"は私がRで書いた関数の名前ですか?もしそうなら、それは私がJMPでこのツールを使用したいと思うたびに、Rスクリプトウィンドウもその機能のためのスクリプトで開かれなければならないことを意味するのでしょうか?
それとも、そのスペースで私は私の全体の機能を書くことができるべきです(それによって私は機能のための完全なスクリプトを意味する)?それは私のために働いていないようです...
そして、このスクリプトがJMPで作成されたら、他のすべてがクリックしてグラフや表を見るためにファイルを入力するように、ツールバーにアイコンを追加することができますか?
ご協力ありがとうございました。私の質問がばかげている場合は、もう一度申し訳ありません。
再:どのようにRの関数を使用してアプリケーションを作成する これはかなり簡単です。 あなたがする必要がある最初の事はユーザーが3つのファイルパスを入力することを可能にするJMPのある種のGUIを作成することです。 これにはいくつかの方法があります。
dir = Pick Directory("Where is the file stored?");
これにより、一貫した名前のファイルが格納されるディレクトリを選択するためのディレクトリブラウザが表示されます。
または
path = Pick File("Which file do you want?");
これにより、特定のファイルを選択するためのファイルブラウザが表示されます。
次に、R接続を確立する必要があります。
rconn = R Connect();
さて、Rに情報を渡す方法は2つあります。最初の方法は
rconn << Send(JMPvariable,R Name("name.in.R"));
または
rconn << Submit("name.in.R <- " || Char(JMPvariable));
rconn << Submit("
output <- R.function(name.in.R)
sapply(output,mean)
");
最初の方法は、単に変数をRに送信して初期化するだけです。2番目の方法では、(作成した関数を含めて)必要なRコードを送信することができます。
Rから物事を取り出す
JMPvariable = R Get(name.in.R);
注意すべき点がいくつかあります。コードをRに送信するにはJMPが少し時間がかかります。Rの実行に1秒かかる可能性があるのは、JSLスクリプトを実行すると数倍かかる場合があります。 いいことに、JMPを使ってRができなかったような美しい出力を作ることができます。
フォローアップの質問がある場合は、お願いします。スレッドを購読します。