如何將表讀入清單?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />假設我有一個表“dt”,其中列名毫無意義。
我有一個表格“dt_source”,有兩列 - 一列無意義的名稱,另一列有相應的有意義的名稱。
我正在嘗試編寫一個腳本,將列從無意義重命名為有意義。
列可能不同,因此我將建立一個具有對應值的主表“dt_source”。
現在我已經準備好了一個腳本,它從腳本的列表中獲取無意義和傾斜的名稱,並重命名每對的列(如果存在這種無意義的名稱)。
我希望能夠取得那些不在清單中輸入的對應對:
name_in={"col1", "col2"};
name_out={"年齡", "身高")
但從一張桌子上。
如何將 dt_name_source 讀入兩個清單:name_in 和 name_out?
到目前為止我有這個:
名稱預設為此處( 1 ) ;
嘗試( dt_來源=數據表( “更改名稱.jmp” ) ,丟( “嘗試開啟資料表” )) ;
如果(不是(可編寫腳本( dt_來源) ) ,
dt_來源=打開( “更改名稱.jmp” ) , dt_來源=數據表( “更改名稱.jmp” ) ;
) ;
目前數據表( dt_來源) ;
名稱_in =清單() ;
名稱輸出=清單() ;
列名_in =柱子( “name_in” ) ;
列名稱輸出=柱子( “名字輸出” ) ;
我= 0 ;
對於每一行(名稱_in [我] =列名_in [] ;名稱輸出[我] =列名稱輸出[] ;我++ ) ;
但後來它不喜歡它:
存取或評估「分配」、name_in 時出現下標問題{1} = /*###*/col_name_in[] /*###*/
如果我只嘗試一個變數
對於每一行(名稱_in =列名_in [] ;名稱輸出=列名稱輸出[] ) ;
那麼就可以了,但這只是一個變數隨著循環的進行而取不同的值。
我需要一份清單。
有人可以給出如何處理這個問題的想法嗎?
謝謝!
回覆:如何將表格讀入清單?我可能會做一些不同的事情:
名稱預設為此處( 1 );
// 指向要改變的資料表的指針
dt = data table("要更改的表名");
for(i=1, i<=N 項(name_out), i++,
如果(嘗試(列(dt,name_in ) << 取得名稱, "") != "", column( dt, name_in ) << 設定名稱(name_out ));
);
回覆:如何將表格讀入清單?吉姆,
目前看來工作正常。 讓我知道這是否是正確的做法:
for(i=1, i<=N 項(name_out), i++,
顯示(一); If( !Is Missing( 可編寫腳本( Try( Column( name_in ) ) ) ), col=Column(name_in )<<設定名稱(name_out );
顯示(列);顯示(一))
);
回覆:如何將表格讀入清單?吉姆,
非常感謝您的回覆。 它工作得很好。
但是,我發現如果沒有包含 name_in 中的名稱之一的列(並且表中通常會有不包含 NameChanging.jmp 表中的所有名稱的列),我的重命名程式碼將無法運作。
到目前為止我有這個:
for(i=1, i<=N 項(name_out), i++,
顯示(一);嘗試(col=列(name_in )<<設定名稱(name_out ), Throw("未找到列");
顯示(col));顯示(一)
)
但是,當第一次迭代後沒有從表中的 name_in 中找到第一個名稱時,循環就會中斷。
回覆:如何將表格讀入清單?我相信以下腳本會將值放入您需要的清單中:
名稱預設為此處( 1 ) ;
如果(嘗試(dt_源<<得到名字, ”” ) != 《改名》 ,
dt_來源=打開( “更改名稱.jmp” )
) ;
名稱_in = dt_來源:名稱_in <<獲取值;
名稱輸出= dt_來源:名稱輸出<<獲取值;