Wie weisen Sie einer Zeile in einer Datentabelle eine Variable aus einer Liste zu?Ich arbeite mit einer Datentabelle, die eine variable Anzahl von Zeilen hat. Ich möchte eine kategoriale Beschreibung zuweisen, die ich einer neuen Spalte mit dem Namen "Grund 1" definiere. Diese Spalte „Grund 1“ wird zugewiesen, wenn die Spalte „Name“ mit einer der Zeichenfolgen in einer der von mir definierten Listen übereinstimmt.
Der Zeileneintrag „Name“ stimmt genau mit einem Eintrag in den Listen ::slitter, ::label oder ::case überein.
Ich möchte allen Zeilen die verschiedenen Codes für Grund 1 zuweisen und dann die Daten nach Grund 1 analysieren.
dt1 << New Column("Reason 1", Character, "Nominal");
Nrows = N Rows(dt1);
For( i =1, i<=Nrows, i++
For( j=1, j<= N items( ::slitter ), j++,
If(:Name(i) == Eval(slitter(j)), :Reason 1(i) = "Slitter");
);
);
// %Slitter% description codes
slitter = {"TM2300-370",
"TM2300-380",
"TM2300-385",
"TM2300-390",
"TM2300-395",
"TM2300-400"};<BR /><BR />// %Label% description codes (8)<BR />::label = {"TM2300-020",<BR />"TM2300-025",<BR />"TM2300-070",<BR />"TM2300-075",<BR />"TM2300-080",<BR />"TM2300-085",<BR />"TM2300-090",<BR />"TM2300-095"};<BR /><BR />//%Case% description codes (7)<BR />::case = {"TM2300-030",<BR />"TM2300-035",<BR />"TM2300-040",<BR />"TM2300-045",<BR />"TM2300-050",<BR />"TM2300-055",<BR />"TM2300-060"};DatentabelleSkripterstellungFensterBetreff: Wie weist man einer Zeile in einer Datentabelle eine Variable aus einer Liste zu?Aus irgendeinem Grund wies die Schleife die Variable keiner bestimmten Liste von 5 Listen zu, die ich zuweisen wollte. Die Funktion „Get rows where“ hat das erreicht, was ich wollte.
Vielen Dank, dass Sie sich Zeit für diese Lösung genommen haben!
-Logan
Betreff: Wie weist man einer Zeile in einer Datentabelle eine Variable aus einer Liste zu?Meine Gedanken gingen anfangs in eine Schleife, um zu vervollständigen, was ich tun wollte, aber danke für diese alternative Lösung!
Dadurch wurden meine Daten genau so kategorisiert, wie ich es wollte.
Betreff: Wie weist man einer Zeile in einer Datentabelle eine Variable aus einer Liste zu?Es gibt einen anderen Weg, der Get-Zeilen verwendet, wo und enthält.Keine Schleife erforderlich.
dt = data table("Sample Data Set-1");
// %Slitter% description codes
slitter = {"TM2300-370", "TM2300-380", "TM2300-385", "TM2300-390", "TM2300-395", "TM2300-400"};
match_rows = dt << get rows where(contains(slitter, :Name));
dt:Reason 1[match_rows] = "Slitter";Betreff: Wie weist man einer Zeile in einer Datentabelle eine Variable aus einer Liste zu?Sie haben ein paar Syntaxfehler und eine ineffiziente For-Schleife, um nach Übereinstimmungen zu suchen, die durch die Verwendung einer Contains()-Funktion ersetzt werden können.Ich habe auch eine Methode zum Erstellen der neuen Formelspalte hinzugefügt, um dieselbe Berechnung durchzuführen.
Names Default To Here( 1 );
dt1=current data table();
dt1 << New Column( "Reason 1", Character, "Nominal" );
// %Slitter% description codes
slitter = {"TM2300-370", "TM2300-380", "TM2300-385", "TM2300-390", "TM2300-395", "TM2300-400"};
Nrows = N Rows( dt1 );
For( i = 1, i <= Nrows, i++,
If( Contains( slitter, :Name[i] ) == 1,
:Reason 1[i] = "Slitter"
)
);
// or
dt1 << New Column( "Reason 2",
character,
formula(
If( Row() == 1,
slitter = {"TM2300-370", "TM2300-380", "TM2300-385", "TM2300-390", "TM2300-395", "TM2300-400"}
);
If( Contains( slitter, :Name ) == 1,
:Reason 2 = "Slitter"
);
)
);