Ändern Sie alle Spaltennamen dynamisch<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich öffne eine Textdatei, die ich mit einer vorhandenen JMP-Datei verketten möchte.Leider stimmen die Spaltennamen der beiden Dateien nicht überein und können daher nicht einfach verkettet werden.Ich versuche, die Spaltennamen der Textdatei so zu ändern, dass sie mit denen der spezifischen JMP-Datei übereinstimmen, mit der sie verkettet wird.Um die Sache noch komplizierter zu machen, ändern sich die Anzahl der Spalten und ihre Positionen in den verschiedenen Text- und JMP-Datendateien.Zum Beispiel
Spaltennamen der Textdatei 1
tair_avg rh_avg rain_total dew_point_avg leaf_wetness_min windspeed_avg
JMP-Datendatei 1
Tair_(C) RH(%) Niederschlagsmenge (mm) Taupunkt (C) Blattnässe (mV) Windgeschwindigkeit (mph)
Textdatei 2 Spaltennamen
rh_avg tair_avg dew_point_avg rain_total windspeed_avg tsoil_5cm_avg tsoil_15cm_avg
JMP-Datendatei 2
RH (%) Tair_(C) Taupunkt (C) Niederschlag (mm) Windgeschwindigkeit (mph) TBoden bei 5 cm (C) TBoden bei 15 cm (C)
Ich bin mir nicht sicher, wie ich die Spaltennamen der Textdateien am besten bedingt auswerten und ändern kann, damit sie mit denen in der entsprechenden JMP-Datendatei übereinstimmen.Da alle Spaltennamen in den verschiedenen JMP-Datendateien konsistent sind, d. h. die Lufttemperatur beträgt immer Tair (C), dachte ich, dass die Verwendung einer Nachschlagetabelle oder mehrerer If Then Else-Tabellen funktionieren könnte.
Wenn colname = tair_avg, dann colname = Tair (C) Sonst
Wenn Spaltenname = rh_avg, dann Spaltenname = RH (%), sonst
Wenn Spaltenname = windspeed_avg, dann Spaltenname = Windgeschwindigkeit (mph)
......
Da meine JMP-Dateien jedoch möglicherweise mehr als 100 Spalten enthalten, erschien mir die Verwendung so vieler IF-Anweisungen weder praktikabel noch effizient.Ich würde mich über Ideen oder Vorschläge freuen, wie dies am besten erreicht werden kann.
Betreff: Alle Spaltennamen dynamisch ändernDanke PMroz.Ihre Lösung ist viel besser als die, die ich herausgefunden habe und die viele Try-Befehle beinhaltete (siehe unten).
Versuchen(
Type( Column( "name" ) );
Column( dt, "name" ) << Set Name( "Name" );
);
Versuchen(
Type( Column( "age" ) );
Column( dt, "age" ) << Set Name( "Age" );
);
Versuchen(
Type( Column( "air" ) );
Column( dt, "air" ) << Set Name( "Tair (C)" );
);
Betreff: Alle Spaltennamen dynamisch ändern// Liste aller möglichen Spalten in Ihrer Textdatei
text_col_list = { „tair_avg“ , „rh_avg“ , „rain_total“ , „dew_point_avg“ , „leaf_wetness_min“ , „windspeed_avg“ } ;
// Liste aller neuen Spaltennamen, in der gleichen Reihenfolge wie text_col_list
jmp_col_list = { „Tair_(C)“ , „RH(%)“ , „Niederschlag (mm)“ , „Taupunkt (C)“ , „Blattnässe (mV)“ , „Windgeschwindigkeit (mph)“ } ;
dt = Datentabelle ( „Textdatei 1“ ) ;
col_name_list = dt << Spaltennamen abrufen ( Zeichenfolge ) ;
für ( ich = 1 , ich <= nitems ( text_col_list ) , ich ++,
Wenn ( enthält ( col_name_list , text_col_list [ ich ]) ,
Spalte ( dt , text_col_list [ ich ]) << Name einsetzen ( jmp_col_list [ ich ]) ;
) ;
) ;