Cambia tutti i nomi delle colonne in modo dinamico<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto aprendo un file di testo che voglio concatenare con un file JMP esistente.Sfortunatamente, i nomi delle colonne dei due file non corrispondono e quindi non possono essere facilmente concatenati.Sto cercando di cambiare i nomi delle colonne del file di testo in modo che corrispondano a quelli del file JMP specifico a cui verrà concatenato.A complicare ulteriormente le cose, la quantità di colonne e le loro posizioni cambiano nei vari file di testo e di dati JMP.Per esempio
File di testo 1 Nomi di colonna
tair_avg rh_avg rain_total dewpoint_avg leaf_wetness_min windspeed_avg
File di dati JMP 1
Tair_(C) RH(%) Pioggia (mm) Punto di rugiada (C) Bagnatura fogliare (mV) Velocità del vento (mph)
File di testo 2 nomi di colonna
rh_avg tair_avg dew_point_avg rain_total windspeed_avg tsoil_5cm_avg tsoil_15cm_avg
File di dati JMP 2
RH (%) Tair_(C) Punto di rugiada (C) Pioggia (mm) Velocità del vento (mph) Tsoil @ 5cm (C) Tsoil @ 15cm (C)
Non sono sicuro di quale sia il modo migliore per valutare e modificare in modo condizionale i nomi delle colonne dei file di testo in modo che corrispondano a quelli nel file di dati JMP corrispondente.Poiché tutti i nomi delle colonne sono coerenti tra i vari file di dati JMP, ovvero la temperatura dell'aria è sempre Tair (C), pensavo che l'uso di una tabella di ricerca o di più If Then Else potesse funzionare.
If colname = tair_avg Then colname = Tair (C) Else
Se colname = rh_avg Then colname = RH (%) Else
Se colname = windspeed_avg Allora colname = Windspeed (mph)
......
Tuttavia, poiché i miei file JMP possono contenere più di 100 colonne, l'uso di così tante istruzioni IF non sembrava pratico o efficiente.Apprezzerei qualsiasi idea o suggerimento sul modo migliore per realizzare questo.
Ri: Cambia tutti i nomi delle colonne in modo dinamicoGrazie PMroz.La tua soluzione è molto migliore di quella che ho capito che prevedeva molti comandi Try (vedi sotto).
Tentativo(
Tipo( Colonna( "nome" ) );
Colonna( dt, "nome" ) << Imposta Nome( "Nome" );
);
Tentativo(
Tipo( Colonna( "età" ) );
Colonna( dt, "età" ) << Imposta Nome( "Età" );
);
Tentativo(
Tipo( Colonna( "aria" ) );
Column( dt, "air" ) << Imposta Nome( "Tair (C)" );
);
Ri: Cambia tutti i nomi delle colonne in modo dinamico// Elenco di tutte le possibili colonne nel file di testo
text_col_list = { "tair_avg" , "rh_avg" , "pioggia_totale" , "punto_di_rugiada_medio" , "foglia_bagnata_min" , "velocità_vento_avg" } ;
// Elenco di tutti i nuovi nomi di colonna, nello stesso ordine di text_col_list
jmp_col_list = { "Taria_(C)" , "RH(%)" , "Precipitazioni (mm)" , "Punto di rugiada (C)" , "Bagnatura fogliare (mV)" , "Velocità del vento (mph)" } ;
dt = tabella dati ( "File di testo 1" ) ;
col_name_list = dt << ottenere i nomi delle colonne ( corda ) ;
per ( io = 1 , io <= articoli ( text_col_list ) , io ++,
Se ( contiene ( col_name_list , text_col_list [ io ]) ,
colonna ( dt , text_col_list [ io ]) << imposta nome ( jmp_col_list [ io ]) ;
) ;
) ;