Cambiar todos los nombres de las columnas dinámicamente<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy abriendo un archivo de texto que quiero concatenar con un archivo JMP existente.Lamentablemente, los nombres de las columnas de los dos archivos no coinciden y, por lo tanto, no se pueden concatenar fácilmente.Estoy tratando de cambiar los nombres de las columnas del archivo de texto para que coincidan con los del archivo JMP específico al que se concatenará.Para complicar aún más las cosas, la cantidad de columnas y sus posiciones cambian en los distintos archivos de texto y datos JMP.Por ejemplo
Nombres de columna del archivo de texto 1
tair_avg rh_avg rain_total dew_point_avg leaf_wetness_min windspeed_avg
Archivo de datos JMP 1
Tair_(C) RH(%) Precipitación(mm) Punto de rocío (C) Humedad de la hoja(mV) Velocidad del viento (mph)
Archivo de texto 2 nombres de columna
rh_avg tair_avg dew_point_avg rain_total windspeed_avg tsoil_5cm_avg tsoil_15cm_avg
Archivo de datos JMP 2
HR (%) Tair_(C) Punto de rocío (C) Precipitación (mm) Velocidad del viento (mph) Tsuelo a 5 cm (C) Tsuelo a 15 cm (C)
No estoy seguro de cuál es la mejor manera de evaluar y cambiar condicionalmente los nombres de las columnas de los archivos de texto para que coincidan con los del archivo de datos JMP correspondiente.Dado que todos los nombres de las columnas son consistentes entre los diversos archivos de datos JMP, es decir, la temperatura del aire siempre es Tair (C), estaba pensando que el uso de una tabla de búsqueda o varios If Then Else podrían funcionar.
Si colname = tair_avg Entonces colname = Tair (C) De lo contrario
Si colname = rh_avg Entonces colname = RH (%) De lo contrario
Si colname = windspeed_avg Entonces colname = Windspeed (mph)
......
Sin embargo, dado que mis archivos JMP pueden contener más de 100 columnas, el uso de tantas declaraciones IF no parecía práctico ni eficiente.Apreciaría cualquier idea o sugerencia sobre la mejor manera de lograr esto.
Re: Cambiar los nombres de todas las columnas dinámicamenteGracias PMroz.Su solución es mucho mejor que la que descubrí que involucraba muchos comandos Try (ver más abajo).
Probar(
Tipo( Columna( "nombre" ) );
Columna( dt, "nombre" ) << Establecer Nombre( "Nombre" );
);
Probar(
Tipo( Columna( "edad" ) );
Columna( dt, "edad" ) << Establecer Nombre( "Edad" );
);
Probar(
Tipo( Columna( "aire" ) );
Columna( dt, "aire" ) << Establecer Nombre( "Tair (C)" );
);
Re: Cambiar los nombres de todas las columnas dinámicamente// Lista de todas las columnas posibles en su archivo de texto
lista_col_texto = { "tair_avg" , "rh_promedio" , "lluvia_total" , "punto_rocío_avg" , "hoja_humedad_min" , "velocidad del viento_avg" } ;
// Lista de todos los nombres de columna nuevos, en el mismo orden que text_col_list
jmp_col_list = { "Tair_(C)" , "RH(%)" , "Precipitaciones (mm)" , "Punto de rocío (C)" , "Humedad de la hoja (mV)" , "Velocidad del viento (mph)" } ;
dt = tabla de datos ( "Archivo de texto 1" ) ;
col_name_list = dt << obtener nombres de columna ( cuerda ) ;
por ( i = 1 , i <= artículos ( lista_col_texto ) , i ++,
si ( contiene ( col_name_list , lista_col_texto [ i ]) ,
columna ( dt , lista_col_texto [ i ]) << escoger un nombre ( jmp_col_list [ i ]) ;
) ;
) ;