Send は、「Send」のアクセスまたは評価でスクリプト可能オブジェクトを期待します。こんにちは、
「書き込み」しようとすると、このエラーまたは同様のエラーが発生します。データ出力を「記録」または「保存」します
Send は、'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します。G << /*###*/
'送信' , G << /*###*/Save( "/homedirectory/Drug_test.txt" ) /*###*/
例として、JMP サンプル ファイルである「Drug.jmp」の Fitmodel サンプル (下記) を使用しました。
</CODE></P><P><CODE class=" language-jsl">dt = Open( "$SAMPLE_DATA/Drug.jmp" ); obj = dt << Fit Model( Y( :y ), Effects( :Drug, :x ), Personality( Standard Least Squares ), Emphasis( Minimal Report ), Run ); G = obj << Get Effect PValues; Show( G ); //values show in log G << Save( "/homedirectory/Drug_test.txt");// I get the error message:<EM>Send は、'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します。G << /*###*/</EM><BR /><EM>// '送信'、G << /*###*/Save( "/homedirectory/Drug_test.txt" ) /*###*/</EM> // also did not work G<<SAVETEXT></SAVETEXT>
<CODE class=" language-jsl">
What am I doing wrong?
DLC7JMP
<LINGO-LABS id="lingo-labs-769883" slang="en-US" mode="CREATE"><LINGO-LABEL>自動化とスクリプト</LINGO-LABEL><LINGO-LABEL>マックOS</LINGO-LABEL></LINGO-LABS>Re: Send は 'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します。この場合、何を保存しようとしていますか? 結果をテキストファイルに保存したい場合は、「テキストファイルの保存」を使用する必要があります。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Drug.jmp");
obj = dt << Fit Model(
Y(:y),
Effects(:Drug, :x),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
G = obj << Get Effect PValues;
Save Text File("$TEMP/drugtest.txt", Char(G));
Web("$TEMP/drugtest.txt"); // should open in default .txt application
したがって、この場合は、マトリックスに誤ったメッセージを送信していることになります。
Re: Send は 'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します。ありがとうございます。問題なく動作しました。
このテスト ループが「Y」変数なしで「分析」ウィンドウのみを開く理由について説明していただけますか?
これは 3 列のデータのみのテストです。私の目標は、これを 4,500 列で実行し、各分析の 2 つの p 値を保存することです。
// ファイルを開く
dt = ( "home/AND_Counts_alphaorder_SumNorm.jmp" )を開きます。
// 応答列の範囲を定義する
開始列 = 31 ;
終了列 = 33 ;
// 応答列をループする
(列 = 開始列、列 <= 終了列、列++、
responseVar =列(dt, col) <<名前を取得;
obj = dt <<適合モデル(
Y( 応答変数 )、
効果(:mass,::Accl_Temp_ordinal)、
性格(標準最小二乗法)、
強調(最小限のレポート)、
走る)、
);
P = obj <<効果の PValues を取得します。
テキスト ファイルを保存します( "~/Projects_AB/Ptest.csv" 、 Char (P));
// これは「Y」なしで3つのウィンドウを開きます
Re: Send は 'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します。レスポンス変数の周りに Eval() を追加するだけで十分だと思います (そして Accl_Temp_ordinal スコープを :: から : に修正します)。また、多数の列を扱う場合は、最初にもっと少ない列数でテストして、誤って 4500 個のフィット モデル プラットフォームが開かれないようにスクリプトを動作させてください。以下は、私が提案した修正を加えたスクリプトのバージョンです。
Names Default To Here(1);
dt = Open("home/AND_Counts_alphaorder_SumNorm.jmp");
// Define the range of response columns
startColumn = 31;
endColumn = 33;
// Loop over the response columns
For(col = startColumn, col <= endColumn, col++,
responseVar = Column(dt, col) << Get Name;
obj = dt << Fit Model(
Y(Eval(responseVar)),
Effects(:mass, :Accl_Temp_ordinal),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
);
P = obj << Get Effect PValues;
Save Text File("~/Projects_AB/Ptest.csv", Char(P));
これは少し異なるタイプの方法ですが、少なくとも結果を収集する方法とレポートを閉じる方法についていくつかのアイデアを提供できるかもしれません。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
colnames = {"height", "weight"}; // many method of getting these
// Loop over the response columns
colpvals = Associative Array();
For Each({colname}, colnames,
colname = "height"
fm = dt << Fit Model(
Y(Eval(colname)),
Effects(:age, :sex),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
pvals = fm << Get Effect PValues;
// list conversion seems to be necessary for for JSON conversion
// and it is easiest to do here
colpvals[colname] = As List(pvals);
fm << close window;
wait(0); // most likely unnecessary
);
Save Text File("$TEMP/test.json", As JSON Expr(colpvals));
// Web("$TEMP/test.json");
結果を JMP データ テーブルに収集し、それを .csv に変換することも検討できますが、これは希望する最終結果によって異なります。
Re: Send は 'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します。ジャーモ
ありがとうございます。これを試してみて、うまくいけば「解決策として承認」します。
再度、感謝します。
ダグ
Re: Send は 'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します。こんにちは、ジャルモさん。
あなたの解決策はうまくいきました。
ありがとう!!
ただし、「Tex ファイルをテキストまたは csv として保存」すると、各エントリが上書きされ、最後の p 値のみが残ります。
そこで、2 つのファイルを組み合わせて JSON ファイルを作成し、スクリプトの下部に JMP へのインポート方法を説明するメモを記載しました。
詳細は下記を参照
再度、感謝します。
ダグ
Names Default To Here(1);
dt = Open("~home/mydatafile.jmp");
// Loop over the response columns
colpvals = Associative Array();
// Define the range of response columns
startColumn = 23;
endColumn = 42;
// Loop over the response columns
For(col = startColumn, col <= endColumn, col++,
responseVar = Column(dt, col) << Get Name;
fm = dt << Fit Model(
Y(Eval(responseVar)),
Effects(:mass, :Accl_Temp_ordinal),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
Pv = fm << Get Effect PValues;
// list conversion seems to be necessary for for JSON conversion
// and it is easiest to do here
colpvals[responseVar] = As List(Pv);
fm << close window;
wait(0); // most likely unnecessary
);
Save Text File("~home/Ptest4.json", As JSON Expr(colpvals));
// NOTE: open JSON file in JMP as "Data (Using Preview)" not best guess.
// top left choose "Stack" (upper right) and "Huge Guess" (under "Guess" pull down)
// File is columns of "responseVar" (data column names), rows are the two p-values
// Transposing in JMP may be desirable.
Re: Send は 'Send' のアクセスまたは評価でスクリプト可能オブジェクトを期待します。ループ内で結果をリスト/マトリックス/その他のデータ構造に収集し、それをループの外で保存する必要があります。
また、最初にファイルを空の状態で(またはループの最初のサイクルで)置換モード(デフォルトモード)で作成し、置換モードSave Text File(path, text|BLOB, ) 。
おそらく、.csv ファイルにヘッダーと列名を追加する必要があるでしょう。
Names Default To Here(1);
filepath = "$TEMP/test.csv";
dt = Open("$SAMPLE_DATA/Big Class.jmp");
colnames = {"height", "weight"}; // many method of getting these
For Each({colname}, colnames,
fm = dt << Fit Model(
Y(Eval(colname)),
Effects(:age, :sex),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
pvals = fm << Get Effect PValues;
// list conversion seems to be necessary for for JSON conversion
// and it is easiest to do here
fm << close window;
If(!File Exists(filepath),
savemode = "replace";
,
savemode = "append"
);
Save Text File(filepath, Char(pvals) || "\!N", mode(savemode));
wait(0); // most likely unnecessary
);
// Web(filepath);
私がこのようなことをするなら、おそらく結果をJMPテーブルに収集し、必要に応じてクリーンアップして、希望の形式で保存するでしょう。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
colnames = {"height", "weight"}; // many method of getting these
dt_result = Empty();
For Each({colname}, colnames,
fm = dt << Fit Model(
Y(Eval(colname)),
Effects(:age, :sex),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
dt_p = Report(fm)[Outline Box("Effect Tests"), Table Box(1)] << Make Combined Data Table(Invisible);
fm << close window;
dt_p << Delete Scripts(dt_p << Get Table Script Names);
If(Is Empty(dt_result),
dt_result = dt_p;
dt_result << Set Name("pvalues");
,
dt_result << Concatenate(Append to first table, dt_p);
Close(dt_p, no save);
);
);
dt_result << show window(1);

これを.csvに保存するには、(または小数点以下のデータが失われないようにJMPテーブルとして保存します)
dt_result << Save("$TEMP/test.csv");
