Wenn ich eine Datentabelle wie unten eingerichtet habe
| Spalte1 | Spalte2 | Spalte3 | Spalte4 |
| 1 | A | e | 20 |
| 2 | B | F | 21 |
| 3 | C | G | 22 |
und eine Liste von Zeichenfolgen für neue Spaltennamen
NewCols = { "Data1", "Data2", "Data3", "Data4"}
Wie kann ich ein Skript schreiben, um die Spalten der Datentabelle mithilfe der Liste „Neue Spalten“ alle einmal umzubenennen, sodass die folgende Datentabelle entsteht?
| Daten1 | Daten2 | Daten3 | Daten4 |
| 1 | A | e | 20 |
| 2 | B | F | 21 |
| 3 | C | G | 22 |
Hallo @user8421 ,
Es ist möglicherweise noch nicht auf Sie anwendbar, aber in JMP 16 (und höher) können Sie einen verbesserten JSL-Befehl „For Each()“ verwenden, um dies schnell zu tun:
dt = Current Data Table();
NewCols = { "Data1", "Data2", "Data3", "Data4"}
For Each( {value, index}, NewCols, Column( dt, index ) << set name( value ) );
Ich hoffe das hilft!
@julianisch
Mir ist keine einzige Anweisung bekannt, die die Spaltennamen ändern würde.Nachfolgend finden Sie die Methode, die ich in solchen Situationen verwende.
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 3 ),
New Column( "Col1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [1, 2, 3] )
),
New Column( "Col2", Character( 16 ), "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "Col3", Character( 16 ), "Nominal", Set Values( {"e", "f", "g"} ) ),
New Column( "Col4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [20, 21, 22] )
)
);
NewCols = {"Data1", "Data2", "Data3", "Data4"};
For( i = 1, i <= N Items( NewCols ), i++,
Column( dt, i ) << set name( NewCols[i] )
);