<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想使用預選的列名進行對話,如果它們不在數據集中,您可以更改或選擇其他列名。 問題是我以後無法使用這些選擇的。
所以這是我的代碼:
清除全局變量();
dt = 當前數據表();
如果(為空(dt),
dt = 打開()
);
col_name_list = dt << 獲取列名(字符串);
顯示(col_name_list);
對話ADMI = Empty();
如果(包含(col_name_list,“ADJMI Rev2”),
dialogADMI = Column("ADJMI Rev2")
);
對話框MIPLdraw1 = 空();
如果(包含(col_name_list,“MIPLdraw1”),
對話框MIPLdraw1 = 列(“MIPLdraw1”)
);
dlg = 列對話框(
ADMI2 = Col List("ADJMI Rev2",
最小列(1),
最大科爾(1),
列(對話框ADMI)
),
MIPLdraw1Col = Col 列表(“MIPLdraw1”,
最小列(1),
最大科爾(1),
列(對話框MIPLdraw1)
),
);
顯示(dlg[“按鈕”]);
如果(dlg [“按鈕”] == -1,
扔()
);
從(dlg)中刪除;
評估列表(dlg);
ADMI2 = ADMI2[1] << 獲取名稱;
MIPLdraw1Col = MIPLdraw1Col[1] << 獲取名稱;
// 直到這裡我認為一切都很好
// 但是下一個 sted 不起作用
dt <<
選擇哪裡(:MIPLdraw1Col!=“”)<<
子集(
列(:患者,:ADMI2,:MIPLdraw1Col),
輸出表名("Draw1"),
);
;
// 所以我嘗試選擇那些在 MIdraw1Col 中沒有 empy
// 我得到了這個:dt << Select Where( :MIPLdraw1Col/*###*/ != "" ) <<
// 如果使用列 MIPLdraw1 的原始名稱,則此方法有效,但我希望有可能使用其他列名
// 那我該怎麼做呢?
您遇到的問題是您告訴 JMP 您有一個名為 :ADMI2 和 :MIPLdraw1Col 的列。這是因為您在引用前面使用了“:”的範圍元素。您沒有這些名稱的列。您有內存變量,其值具有列的名稱。如果您將代碼更改為以下內容,它將起作用:
dt <<選擇地點(作為列(MIPLdraw1Col)!= “” ) <<子集(
列(:患者,柱子(ADMI2),柱子(MIPLdraw1Col)),
輸出表名( “畫1” ),
);
您可能需要列變量而不是它們的名稱。
嘗試用這個交換你的鱈魚的最後一部分:
ADMI2 =柱子( ADMI2 [ 1 ] <<得到名字) ;
MIPLdraw1Col =柱子( MIPLdraw1Col [ 1 ] <<得到名字) ;
// 直到這裡我認為一切都很好
// 但是下一個 sted 不起作用
dt <<選擇地點( MIPLdraw1Col [] != “” ) <<子集(
列( :病人, ADMI2 , MIPLdraw1Col ) ,
輸出表名( “畫1” )
) ;