為列名加上前綴(腳本)你好
我有一個 JMP 資料集,想要為該資料集中的所有列名稱添加相同的前綴,而下面的程式碼並不能完全滿足我的要求。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = dt << For( i = 25, i <= N Cols( dt ), i++,
cName = Column( dt, i ) << Get Name;
newname = cName || "Prefix_";
Column( dt, i ) << Set Name( newname );
);
現在,第二種情況:
想像一下「Big Class」中的「性別」欄位僅包含 F(或 Ms)。
我如何透過上面程式碼中的實用程式/巨集變數的幫助來存取該內容並將其用作前綴?
乾杯,新手
回覆:為列名加上前綴(腳本)對不起,馬克。 我沒有註意到緩衝區不包含=貼上最新的 JSL 代碼變體。
無論如何,我稍微調整了一下...
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
prefix = dt:sex[1];
For( i = 1, i <= N Cols( dt ), i++,
cName = Column( dt, i ) << Get Name;
newname = prefix ||"_"||cName;
Column( dt, i ) << Set Name( newname ); );
回覆:為列名加上前綴(腳本)首先,For() 是一個函數,而不是資料表的訊息,它不傳回對新資料表的參考。 其次,為什麼循環索引從25開始? 三、為什麼要串聯前綴後名字? 該結果是一個後綴。
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
prefix = dt:sex[1];
For( i = 1, i <= N Cols( dt ), i++,
cName = Column( dt, i ) << Get Name;
newname = prefix || cName;
Column( dt, i ) << Set Name( newname );
);