Modifier dynamiquement tous les noms de colonnes<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ouvre un fichier texte que je souhaite concaténer avec un fichier JMP existant.Malheureusement, les noms de colonne des deux fichiers ne correspondent pas et ne peuvent donc pas être facilement concaténés.J'essaie de modifier les noms de colonne du fichier texte pour qu'ils correspondent à ceux du fichier JMP spécifique auquel il sera concaténé.Pour compliquer encore les choses, la quantité de colonnes et leurs positions changent dans les différents fichiers de données texte et JMP.Par exemple
Noms des colonnes du fichier texte 1
tair_avg rh_avg rain_total dew_point_avg leaf_wetness_min windspeed_avg
Fichier de données JMP 1
Tair_(C) HR(%) Précipitations(mm) Point de rosée (C) Humidité des feuilles(mV) Vitesse du vent (mph)
Fichier texte 2 noms de colonne
rh_avg tair_avg dew_point_avg rain_total windspeed_avg tsol_5cm_avg tsol_15cm_avg
Fichier de données JMP 2
HR (%) Tair_(C) Point de rosée (C) Précipitations (mm) Vitesse du vent (mph) Tsol à 5 cm (C) Tsol à 15 cm (C)
Je ne sais pas quelle est la meilleure façon d'évaluer et de modifier conditionnellement les noms de colonne des fichiers texte pour qu'ils correspondent à ceux du fichier de données JMP correspondant.Étant donné que tous les noms de colonnes sont cohérents entre les différents fichiers de données JMP, c'est-à-dire que la température de l'air est toujours Tair (C), je pensais que l'utilisation d'une table de recherche ou de plusieurs If Then Else pourrait fonctionner.
Si colname = tair_avg Alors colname = Tair (C) Sinon
Si colname = rh_avg Alors colname = RH (%) Sinon
Si colname = windspeed_avg Alors colname = Windspeed (mph)
......
Cependant, étant donné que mes fichiers JMP peuvent contenir plus de 100 colonnes, l'utilisation de ces nombreuses instructions IF ne semblait ni pratique ni efficace.J'apprécierais toutes les idées ou suggestions sur la meilleure façon d'accomplir cela.
Re : Modifier dynamiquement tous les noms de colonnesMerci PMroz.Votre solution est bien meilleure que celle que j'ai trouvée qui impliquait beaucoup de commandes Try (voir ci-dessous).
Essayer(
Type( Colonne( "nom" ) );
Column( dt, "name" ) << Set Name( "Name" );
);
Essayer(
Type( Colonne( "âge" ) );
Column( dt, "age" ) << Set Name( "Age" );
);
Essayer(
Type( Colonne( "air" ) );
Column( dt, "air" ) << Set Name( "Tair (C)" );
);
Re : Modifier dynamiquement tous les noms de colonnes// Liste de toutes les colonnes possibles dans votre fichier texte
text_col_list = { "tair_avg" , "rh_moy" , "pluie_totale" , "point de rosée_moyenne" , "leaf_wetness_min" , "windspeed_avg" } ;
// Liste de tous les nouveaux noms de colonnes, dans le même ordre que text_col_list
jmp_col_list = { "Tair_(C)" , "HR(%)" , "Précipitations (mm)" , "Point de rosée (C)" , "Humidité des feuilles (mV)" , "Vitesse du vent (mph)" } ;
dt = tableau de données ( "Fichier texte 1" ) ;
col_name_list = dt << obtenir les noms de colonnes ( chaîne ) ;
pour ( je = 1 , je <= articles ( text_col_list ) , je ++,
si ( contient ( col_name_list , text_col_list [ je ]) ,
colonne ( dt , text_col_list [ je ]) << définir le nom ( jmp_col_list [ je ]) ;
) ;
) ;