<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />今月前に聞いてみましたが、迷って説明がまとまりませんでした。それから私は説明することができる前に割り当てに引き離されました。だから、これが私が欲しいものと機能していないものを説明するための私のより良い試みです。
私がしていること:列名は決して変更されませんが、絶えず変更される大きなデータセットを使用するスクリプトを作成しています。さまざまな要約と式を実行する必要があります。私の戦略は、いくつかの要約テーブルを作成して、自分が持っているデータのカテゴリを判別することです。以下の例は、私がやろうとしていることの素晴らしい、単純な例です。大きなclass.jmpファイルを使用し、性別のカテゴリを探しています。カテゴリ「M」、「F」を認識した後、変数カテゴリごとに新しい列を作成します。この場合は:Example-F、次に:Example-Mという名前で、新しい各列内に他の列を参照する数式があります。列を作成し、作成されている非常に新しい列を参照して行を計算します。
私の問題:列参照を機能させることができません、特に、数式が作成されているのと同じ列を呼び出している変数。下記参照
//始める
try(close(dt、保存なし));
try(close(dt_categories、保存なし));
try(close(dt_data、保存なし));
クリアグローバル();
dt = Open( "道\ big_class.jmp ");
//性別のリストを作成し、名前を置き換えます。ここでは問題はありません。
dt_categories = dt << Summary(
Group(:SEX)、
統計列名format( "column")、
出力テーブル名( "Gender_Summary"));
性別リスト=dt_categories:sex<<値を取得;
性別カウント=nrows(dt_categories);
dt_data = dt << Split(Split By(:SEX)、Split(:HEIGHT)、Output Table( "Split_Big_Class")、Remaining Columns(Drop All)
);
For(i = 1、i <=頻度数、i ++、
// oldcolは性別リストから作成されますが、新しいdt_dataの列名を表し、式はそれらを参照します。ここでは問題はありません。
oldcol = column(genderlist );
//新しい列に既存の(古い)列とは異なる名前を付ける必要があります。そうしないと、jmpが名前をインクリメントし、列名の参照を実際に台無しにするようです。ここでは問題はないと思います。
newcolname =("例-"||性別リスト);
//次に、最初に列を作成して、後続の数式が既存の列を参照できるようにしましたが、これが必要かどうかはわかりません。
newcol = dt_data << New Column( newcolname 、数値);
//次の行は関数方程式ですが、変数を参照として使用していません。あなたは私がやろうとしていることを見るのに使うことができます。
// newcolname << Formula(If(Row()== 1、1 +:F、:Name( "Example-F")[Row()-1、Empty()] + 1));
//上記の関数式に変数を挿入しようとしたため、次の行は非関数式です。これは、エラーをスローしている場所です。
newcolname << Formula(If(Row()== 1、1 + oldcol 、 newcol [Row()-1、Empty()] + 1));
);
助言がありますか?私はスクリプティングにかなり慣れておらず、学習しながら学ぼうとしています。ありがとう!!!!!
申し訳ありませんが、あなたが作成しようとしていたものを示すあなたの行を見逃しました。
これを試して:
dt1 = Open( "$ SAMPLE_DATA / Big Class.JMP");
summary(categories = by(:SEX));
dt2 = dt1 << Split(Split By(:SEX)、Split(:HEIGHT)、Output Table( "Split_Big_Class")、Remaining Columns(Drop All));
for(i = 1、i <= nItems(categories)、i ++、
dt2 << newColumn("Example-"||カテゴリ、 キャラクター、方式(
If(Row()== 1、
1 + asColumn(categories )、
asColumn("例-"||カテゴリ)[Row()-1] + 1
);
);
);
);
フォーミュラに何を生み出してほしいかを言葉で説明していただけますか?
前の行データに基づいて値を作成しようとしているようです-追加しますか?
最終結果をどのようにするかを詳しく説明する場合は、可能であれば例を挙げて、それは素晴らしいことです。