选择用户提供的列表中包含的列<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我试图弄清楚如何使用用户指定的列表来选择列表中包含的那些数据列。用户提供的列表可能包含比数据表中存在的更多或更少的名称。例如,我尝试了以下方法,但似乎无法使其工作。任何想法,将不胜感激。谢谢
dt = open("$SAMPLE_DATA/Big Class.jmp");
// 获取数据列名称列表
col_list = dt << 获取列名 ( String );
// 用户指定的列名
cc = { 性别、体重、测试、新、旧 };
for( i=1, i<=ncol( cc ), i++,
如果(包含( col_list,抄送),
列(dt,col_list ) << 设置所选 ( 1 )
)
);
回复:选择用户提供的列表中包含的列多发性硬化症,
感谢您对此的帮助。我现在明白了,我对循环哪一栏的思考是导致我早期悲伤的原因。我假设我会循环并选择数据表变量列表中列出的列,而不是用户指定的列表。总是在这里学习新东西。谢谢。
回复:选择用户提供的列表中包含的列我没有研究输出的细节。 你正在循环抄送,那么你应该参考抄送而不是 col_list以获得所需的结果。
dt =打开( “$SAMPLE_DATA/大类.jmp” ) ;
// 获取数据列名称列表
列列表= dt <<获取列名称(细绳) ;
// 用户指定的列名
抄送= {性别,重量,测试,新的,老的} ;
为了(我= 1 ,我<= N 项(抄送) ,我++,
如果(包含(列列表,查尔(抄送[我] ) ) ,
柱子( dt ,查尔(抄送[我] ) ) <<设置选定( 1 )
)
) ;
//这也有效
为了(我= 1 ,我<= N 项(抄送) ,我++,
如果(包含(列列表,查尔(抄送[我] ) ) ,
: (抄送[我]) <<设置选定( 1 )
)
) ;
回复:选择用户提供的列表中包含的列嗨女士,
感谢您的提示。尽管您提供的代码可以运行,但它不会仅选择用户指定列表中列出的那些列。例如,上面列出的代码选择前两列(姓名和性别),即使性别不在用户指定的列表中。我认为这个列表构造正在遍历并在 col_list 中找到与 cc 中的列号相匹配的列号,然后选择它们。看起来它实际上是根据抄送中的位置而不是名称来选择列。是否可以根据匹配的名称而不是位置来选择列?
回复:选择用户提供的列表中包含的列差不多了。 对于列表,使用 N Items() 而不是 ncol()。 为了匹配两个项目都需要具有相同的数据类型。 因此,要么提供用户提供的列表作为字符串列表,要么使用 Char(),如下所示。
dt =打开( “$SAMPLE_DATA/大类.jmp” ) ;
// 获取数据列名称列表
列列表= dt <<获取列名称(细绳) ;
// 用户指定的列名
抄送= {性别,重量,测试,新的,老的} ;
为了(我= 1 ,我<= N 项(抄送) ,我++,
如果(包含(列列表,查尔(抄送[我] ) ) ,
柱子( dt ,列列表[我] ) <<设置选定( 1 )
)
) ;