Hallo ,
Ich versuche, eine Variable (Typ2) aus mehreren Zeilen pro ID mithilfe des Variablentyps zu erstellen. Ich möchte eine Tabelle wie diese umwandeln:
AUSWEIS | Typ |
1 | A |
1 | A |
1 | B |
2 | A |
2 | A |
3 | B |
3 | B |
3 | B |
Zu:
Wo Typ2 ist:
Wenn Typ immer A ist, dann Typ2=A;
Wenn Typ immer B ist, dann Typ2=B;
Wenn Typ eine Kombination aus A und B ist, dann Typ2=C;
Danke
Hallo,
Es sieht so aus, als wäre Ihre Tabelle nach :ID und :type sortiert. Wenn ja, oder wenn Sie bereit sind, es zu sortieren, können Sie dies ausnutzen und eine (relativ) einfache Formel für die Spalte :type2 verwenden:
If( :type[Col Min( Row(), :ID )] == :type[Col Max( Row(), :ID )],
:type,
"C"
)
Beifall,
Brady
Viele Möglichkeiten, dies zu tun. Ich würde berechnen, wie oft Typ in ID vorkommt, und wenn es die gleiche Menge ist wie ID in Daten, dann wissen Sie, dass es der einzige Typ ist.
Zusammenfassung mit Formel:
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"
)
)
);Und andere mit Col Sum mit Select duplizierte Zeilen:
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;Weitere Informationen zu den Funktionen, insbesondere Col Sum, finden Sie im Skriptindex.