Spaltennamen mit numerischem AnfangsbuchstabenIch habe einen Code, der mit Spaltennamen mit numerischem Anfangsbuchstaben stolpert, wobei der Code den Namen für ein Datum hält. Ich habe die Spalten umbenannt, um das Problem zu beheben, aber es ist hässlich. Ich habe auch festgestellt, dass das Umschließen des Objekts, das die Namen darstellt, in eine Char(obj)-Anweisung ebenfalls nicht funktionierte. Gibt es Vorschläge, wie man das Problem besser lösen kann?
dt = Current Data Table();
cnmes = dt << get column names( "string" );
For( j = 1, j <= N Items( cnmes ), j++,
if (Starts With( cnmes[j], "1" ) == 1 | Starts With( cnmes[j], "2" ) == 1 | Starts With( cnmes[j], "3" ) == 1| Starts With( cnmes[j], "4" ) == 1 | Starts With( cnmes[j], "5" ) == 1 | Starts With( cnmes[j], "6" ) == 1 | Starts With( cnmes[j], "7" ) == 1 | Starts With( cnmes[j], "8" ) ==1 | Starts With( cnmes[j], "9" ) == 1 | Starts With( cnmes[j], "0") == 1 ,
Column(cnmes[j]) << set name("_"||cnmes[j])
) );
Automatisierung und SkriptingBetreff: Spaltennamen mit numerischem AnfangsbuchstabenSie können die Funktion Column() verwenden, um Spaltennamen in Ihrer "cnmes"-Liste zu referenzieren. Oder wenn Sie die Spaltennamen hart codieren, verwenden Sie Folgendes
// Report snapshot: Big Class - Graph Builder
Data Table( "Big Class" ) << Graph Builder(
Variables( X( :"1height"n ), Y( :"1height"n ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) )
);

names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// Change column name: height → 1height
try(Data Table( "Big Class" ):height << Set Name( "1height" ));
// Change column name: weight → 3weight
try(Data Table( "Big Class" ):weight << Set Name( "3weight" ));
cnmes = dt << get column names( "string" );
Graph Builder(
Variables( X( column(cnmes[5])), Y( column(cnmes[4]) ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) )
);
Betreff: Spaltennamen mit numerischem AnfangsbuchstabenSie sehen diese Probleme, weil Namen entweder mit einem Buchstaben oder einem Unterstrich beginnen müssen (siehe Scripting Guide > JSL Building Blocks > JSL Syntax Rules > Names) . Je nachdem, was Sie tun, möchten Sie sie möglicherweise umbenennen (siehe txnelsons Optionen). Zum Umbenennen könnten Sie beispielsweise Regex wie folgt verwenden:
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(0),
Compress File When Saved(1),
New Column("1col", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("13col", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("0col", Numeric, "Continuous", Format("Best", 12), Set Values([])),
New Column("Column 4",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([])
)
);
colnames = dt << Get Column Names("String");
For Each({colname}, colnames,
newname = Regex(colname, "^\d+.+", "_\0");
If(!IsMissing(newname),
Column(dt, colname) << Set Name(newname);
);
);