変数を使用して新しい列を作成する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、みんな、
以下のように2つの変数で表される数式で新しい列を作成しようとしています:
dt << New Column("myNewColumn", Numeric, Continuous, Formula(:Ceiling( XXColumn / Size) * Size));
どこ:
XXColumn は、列ダイアログで選択された dt の列名の 1 つです。
サイズ = 列ダイアログの数値
私の試みは、以下のように式が作成されるため、値のない式を持つ新しい列になりました。
天井(柱(XXColumn ) / サイズ) * サイズ
実際に割り当てることなく。
どうすればこれを達成できますか?
Re: 変数を使用して新しい列を作成する再度ありがとう、MS。 このことについて留意しておきます。
Re: 変数を使用して新しい列を作成するあなたのコードを読んでわかる限り、f_Bin は列を参照しますが、n_Bin は文字列です。これは、ここで使用するのが最も安全なデータ型です。
Re: 変数を使用して新しい列を作成する最後に魔法が起こりました!!!
ここに私が使用したコードがあります..
col = dts << New Column("Binning", Numeric, Continuous);
Eval( Parse( Eval Insert( "col << Set Formula(:Ceiling( ^n_Bin^ / ^BinSize^) * ^BinSize^)<< 評価式" )) );
MS さん、ご指導ありがとうございます。私が使用した f_bin と n_bin の差分は何ですか?
Re: 変数を使用して新しい列を作成するf_Bin の代わりに n_Bin を直接使用してみてください。
評価(パース(評価挿入( "col << Set Formula(Ceiling( ^n_Bin^ / ^BinSize^) * ^BinSize^)" ))) ) ;
Re: 変数を使用して新しい列を作成するうまく行かなかった。 たぶん、私が何をしているのかを説明し、コードを貼り付けて共有する必要があります。
ステップ 1: 列ダイアログから入力を収集する
ステップ 2: 選択した列 + デフォルト列の最小値、平均値、最大値を使用して集計表を作成する
ステップ 3: 天井の新しい列を作成する
ステップ 4: グラフ ビルダーを使用してプロットを実行する
コード:
dt0 = 現在のデータ テーブル();
FN = dt0 << 名前を取得します。
r = 列ダイアログ(
Bin = ColList( "X, Binning By", Max Col( 1 ) ),
Overlay = ColList( "Group by / Overlay by", Max Col( 1 ) ),
Split = ColList( "Y, Response",Max Col( 5 ) ),
Compare = ColList( "X 軸上", Max Col( 1 ) ),
HList( "ビンサイズ: ", BinSize = EditNumber( .1 ) ),
);
ビン = r["ビン"];
オーバーレイ = r["オーバーレイ"];
分割 = r["分割"];
比較 = r["比較"];
BinSize = r["BinSize"];
dts = dt0 << 概要(
Group(:Fixed, column(dt0,Overlay), column(dt0,Compare) ),
Mean( :利回り),
最小 ( 列 (dt0、ビン) )、
Mean(列(dt0、ビン))、
最大(列(dt0、ビン))、
最小 (列 (dt0、スプリット [1]) )、
Mean( 列(dt0,Split[1]) ),
最大 (列 (dt0、スプリット [1]) )、
最小 (列 (dt0、分割 [2]) )、
Mean( 列 (dt0,Split[2]) ),
最大 (列 (dt0、スプリット [2]) )、
最小 (列 (dt0、分割 [3]) )、
Mean( 列(dt0,Split[3]) ),
最大 (列 (dt0、スプリット [3]) )、
最小 (列 (dt0、分割 [4]) )、
Mean( 列(dt0,Split[4]) ),
最大 (列 (dt0、スプリット [4]) )、
最小 (列 (dt0、分割 [5]) )、
Mean( 列(dt0,Split[5]) ),
最大 (列 (dt0、スプリット [5]) )、
統計列名 format( "column stat" ),
);
dts << Set Name (FN || "Summary");
n_Bin = Bin[1]||"平均値";
f_Bin = 列 (dts, n_Bin);
col = dts << New Column("Binning", Numeric, Continuous);
Eval( Parse( Eval Insert( "col << Set Formula(Ceiling( ^f_Bin^ / ^BinSize^) * ^BinSize^)" )) );
Re: 変数を使用して新しい列を作成するいいえ。私の知る限り、評価式は同等であるはずです。
新しい列と設定式を別々の式に分けてみてください。
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
列=列ダイアログ(
Col1 =列リスト( "バツ" 、最大列( 1 ) 、データ・タイプ(数値) ) 、
Col2 =列リスト( 「よ」 、最大列( 1 ) 、データ・タイプ(数値) )
) ;
XXColumn =列[ 「コル1」 ][ 1 ] <<名前を取得;
サイズ=列[ 「コル2」 ][ 1 ] <<名前を取得;
列= dt <<新しい列( "myNewColumn" 、数値、連続) ;
評価(パース(評価挿入( "col << Set Formula(Ceiling( ^XXColumn^ / ^Size^) * ^Size^)" ) ) ) ;
列<<評価式;
Re: 変数を使用して新しい列を作成する動いていない。 結果はまだ同じです。
JSL では、ボタン == ? を適用します。あなたは知っていますか?
Re: 変数を使用して新しい列を作成する<
評価(パース(評価挿入( "dt << New Column(\!"myNewColumn\!", Numeric, Continuous, Formula(Ceiling( ^XXColumn^ / ^Size^) * ^Size^), < ) ) ) ;
Re: 変数を使用して新しい列を作成する私のはJMP8.0.0 Windowsです
それがあってもなくても同じです。 T_T
Re: 変数を使用して新しい列を作成するいいえ、それは予想されていませんでした。 私(Mac用のJMP 10)の場合、「適用」をクリックしなくても機能します。 元のコードから残った「Ceiling...」の前に不注意なコロンがありました (上記のコードを編集しました)。 多分それを削除するのに役立ちます。
Re: 変数を使用して新しい列を作成するありがとうございます。
正しい式で作成された新しい列。 しかし、行は空です。 UI の数式セクションに移動し、[適用] をクリックして、値のプロンプトのみを表示する必要があります。
それは期待されていますか?
Re: 変数を使用して新しい列を作成する数式内の変数は、作成時に評価されないため、文字どおりに表現する必要があります。 これを回避する 1 つの方法は、文字列を操作して解析することです。
例:
dt =開ける( "$SAMPLE_DATA/Big Class.jmp" ) ;
列=列ダイアログ( Col1 =列リスト( "バツ" 、最大列( 1 ) 、データ・タイプ(数値) ) 、 Col2 =列リスト( 「よ」 、最大列( 1 ) 、 、データ・タイプ(数値) ) ) ;
XXColumn =列[ 「コル1」 ][ 1 ] <<名前を取得;
サイズ=列[ 「コル2」 ][ 1 ] <<名前を取得;
評価(パース(評価挿入( "dt << New Column(\!"myNewColumn\!", Numeric, Continuous, Formula(Ceiling( ^XXColumn^ / ^Size^) * ^Size^))" ) ) ) ;