Ciao ,
Sto cercando di creare una variabile (tipo2) da più righe per ID utilizzando il tipo di variabile. Voglio nascondere una tabella come questa:
ID | genere |
1 | UN |
1 | UN |
1 | B |
2 | UN |
2 | UN |
3 | B |
3 | B |
3 | B |
Per:
Dove type2 è:
Se il tipo è sempre A, allora type2=A;
Se type è sempre B allora type2=B;
Se type è una combinazione di A e B allora type2=C;
Grazie
Molti modi per farlo. Calcolerei quante volte il tipo appare in ID e se è la stessa quantità di ID appare nei dati, allora sai che è l'unico tipo.
Riepilogo con formula:
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"
)
)
);E altro usando Col Sum con Seleziona righe duplicate:
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;Vedere Scripting Index per ulteriori informazioni sulle funzioni, in particolare Col Sum.