<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” )
) ;