Doppelte Spalten beibehaltenHallo,
Ich habe zwei Datentabellen und diese Tabellen sind bis zu einem gewissen Grad ähnlich, wobei die Testparameter (was bedeutet, dass vielleicht 30 % der Spalten denselben Namen haben) gleich sind, da sie je nach Testort unterschiedlich sind und daher auch das Testergebnis unterschiedlich sein wird. Ich beabsichtige, diese Tabelle mithilfe von Update zu kombinieren und gleichzeitig die Daten der zweiten Tabellenspalte beizubehalten, diese Spalten jedoch automatisch umzubenennen, damit ich sie nebeneinander anzeigen kann. Kann dies über Skripte erfolgen?
Danke.
Betreff: Doppelte Spalten beibehaltenDanke, ich und Jim. Unter normalen Umständen ist das richtig, denn mit weniger Variablen kann die Tabelle problemlos verknüpft werden.
Betreff: Doppelte Spalten beibehaltenUm Jims Argument näher zu erläutern, müssen Sie zeilenweise verknüpfen, da Sie anscheinend kein Schlüsselpaar wie bei einem typischen Join haben.Es fällt mir schwer zu verstehen, warum Sie sich auf diese Weise an den Tisch setzen; Bezieht sich SN AX0001 auf STX0030, aber nicht auf STX0031?Wenn ja, gibt es vielleicht eine weitere Spalte, die Sie beiden Tabellen hinzufügen könnten, um sie auf sinnvollere Weise zu verbinden.
Betreff: Doppelte Spalten beibehaltenWas Sie verlangen, ist die Standardaktion, die in JMP ausgeführt wird, wenn Sie zwei Datentabellen verknüpfen.Wenn in beiden Datentabellen Spalten mit demselben Namen vorhanden sind, benennt JMP die Spalten um.Hier ist eine Skriptversion. Wenn Sie jedoch 2 Tabellen haben, können Sie dies interaktiv tun
Tabellen==>Beitreten
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA\big class.jmp" );
dt2 = Open( "$SAMPLE_DATA\big class Families.jmp" );
Data Table( "big class Families" ) << Join( With( Data Table( "big class" ) ),
By Row Number );
Betreff: Doppelte Spalten beibehaltenDanke, ih. Das ist zwar nicht genau das, was ich will, aber die Idee ist da. Die angehängte Datei ist etwas, was ich tun möchte. Zwei Datentabellen verbinden und automatisch umbenannte Spalten der zweiten Datentabelle, die mit der ersten Datentabelle übereinstimmen. Es tut mir leid, falls meine ursprüngliche Nachricht Verwirrung stiftet.
Betreff: Doppelte Spalten beibehaltenIch weiß nicht genau, was Sie tun möchten, aber ja, Sie können Spalten mithilfe eines Skripts umbenennen.Wenn Sie jede Datentabelle öffnen und separate Verweise auf jede führen, können Sie Nachrichten an alle senden, um Spalten umzubenennen:
Names default to here( 1 );
//Open two tables
dt1 = Open("$SAMPLE_DATA/Iris.jmp"); //first table
dt1 << Set Name( "Table 1" );
dt2 = Open("$SAMPLE_DATA/Iris.jmp"); //second table (different filename)
dt2 << Set Name( "Table 2" );
//Concatenate tables
dtJoined = dt1 << Concatenate( dt2 );
dtJoined << Set Name( "Combined" );
//Change column names
Column( dt1, "Sepal length" ) << Set Name( "Sepal_length" );
Column( dt2, "Sepal length" ) << Set Name( "Sepal_length" );
Column( dtJoined, "Sepal length" ) << Set Name( "Sepal_length" );Wenn Sie viele Spaltennamen ändern, können Sie die letzten drei Zeilen mit einer Funktion ersetzen:
//Make a function to change column names in all tables
ChangeAllNames = function({original, new},
Column( dt1, original ) << Set Name( new );
Column( dt2, original ) << Set Name( new );
Column( dtJoined, original ) << Set Name( new );
);
//Then call the function
ChangeAllNames( "Sepal width", "Sepal_width" );
ChangeAllNames( "Petal length", "Petal_Length" );