動態變更所有列名稱<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我正在打開一個文字文件,想要將其與現有 JMP 文件連接。不幸的是,兩個檔案的列名不匹配,因此無法輕鬆連接。我正在嘗試更改文字檔案的列名稱,以匹配它將連接到的特定 JMP 檔案的列名稱。更複雜的是,各種文字和 JMP 資料檔案中的列數量及其位置會發生變化。例如
文字檔案 1 列名稱
tair_avg rh_avg rain_total dew_point_avg leaf_wetness_min Windspeed_avg
JMP 資料檔 1
Tair_(C) RH(%) 降雨量(mm) 露點(C) 葉濕度(mV) 風速(mph)
文字檔案 2 列名稱
rh_avg tair_avg 露水點_avg 雨量_總風速_avg tsoil_5cm_avg tsoil_15cm_avg
JMP 資料檔 2
RH (%) Tair_(C) 露點 (C) 降雨量 (mm) 風速 (mph) Tsoil @ 5cm (C) Tsoil @ 15cm (C)
我不確定有條件地評估和更改文字檔案列名稱以匹配相應 JMP 資料檔案中的列名稱的最佳方法是什麼。由於各個 JMP 資料檔案中的所有列名稱都是一致的,即氣溫始終為 Tair (C),因此我認為使用查找表或多個 If Then Else 可能會起作用。
如果 colname = tair_avg 則 colname = Tair (C) Else
如果 colname = rh_avg 則 colname = RH (%) 否則
如果 colname = Windspeed_avg 那麼 colname = 風速 (mph)
.....
但是,由於我的 JMP 檔案可能包含超過 100 列,因此使用這麼多 IF 語句似乎並不實用或有效率。如果有任何關於如何最好地實現這一目標的想法或建議,我將不勝感激。
回覆:動態更改所有列名稱謝謝PMroz。您的解決方案比我發現的涉及大量 Try 命令的解決方案要好得多(見下文)。
嘗試(
類型(列(“名稱”));
Column( dt, "名稱" ) << 設定名稱( "名稱" );
);
嘗試(
類型(列(“年齡”));
Column( dt, "年齡" ) << 設定名稱( "年齡" );
);
嘗試(
類型(列(“空氣”));
Column( dt, "air" ) << 設定名稱( "Tair (C)" );
);
回覆:動態更改所有列名稱// 文字檔案中所有可能列的列表
文字列列表= { “tair_avg” , “rh_avg” , “總降雨量” , “露點平均值” , “葉子濕度最小值” , “風速_平均值” } ;
// 所有新列名稱的列表,順序與text_col_list相同
jmp_col_list = { “泰爾_(C)” , “相對濕度(%)” , “降雨量(毫米)” , “露點(C)” , “葉片濕度(mV)” , “風速(英里/小時)” } ;
dt =數據表( “文字檔案1” ) ;
列名列表= dt <<取得列名(細繩) ;
為了(我= 1 ,我<=尼特姆斯(文字列列表) ,我++,
如果(包含(列名列表,文字列列表[我]) ,
柱子( dt ,文字列列表[我]) <<設定名稱( jmp_col_list [我]) ;
) ;
) ;