こんにちは 、
変数タイプを使用して、IDごとに複数の行から1つの変数(type2)を作成しようとしています。 私はこのようなテーブルを隠したい:
ID | タイプ |
1 | NS |
1 | NS |
1 | NS |
2 | NS |
2 | NS |
3 | NS |
3 | NS |
3 | NS |
に:
type2は次のとおりです。
タイプが常にAの場合、type2 = A;
タイプが常にBの場合、type2 = B;
typeがAとBの組み合わせである場合、type2 = C;
ありがとう
これを行うための多くの方法。 タイプがIDに表示される回数を計算し、IDがデータに表示されるのと同じ量であれば、それが唯一のタイプであることがわかります。
式の要約:
Names Default To Here(1);
dt = New Table("From",
Add Rows(8),
New Column("ID", Numeric, "Nominal", Format("Best", 12), Set Values([1, 1, 1, 2, 2, 3, 3, 3])),
New Column("type", Character(16), "Nominal", Set Values({"A", "A", "B", "A", "A", "B", "B", "B"}))
);
dt_summary = dt << Summary(
Output table("To"),
Group(:ID),
N(:type),
Subgroup(:type),
Freq("None"),
Weight("None"),
statistics column name format("column"),
Link to original data table(0)
);
dt_summary << New Column("type2", Character, "Nominal",
<< Set Each Value(
If(:"type, A"n == 0, "B",
:"type, B"n == 0, "A",
"C"
)
)
);その他、重複する行を選択してCol Sumを使用する:
Names Default To Here(1);
dt = New Table("From",
Add Rows(8),
New Column("ID", Numeric, "Nominal", Format("Best", 12), Set Values([1, 1, 1, 2, 2, 3, 3, 3])),
New Column("type", Character(16), "Nominal", Set Values({"A", "A", "B", "A", "A", "B", "B", "B"}))
);
dt << New Column("type2", Character, Nomimal, Formula(
If(Col Sum(1, :ID) == Col Sum(1, :ID, :type),
:type,
"C"
)
));
wait(1);
dt:type2 << Delete Formula;
wait(1);
dt << Select Duplicate Rows(Match(:ID, :type2));<BR />wait(1);<BR />dt << Delete Rows;関数、特にCol Sumの詳細については、スクリプトインデックスを参照してください。