大家好,
从我之前的帖子中,我面临子集数据问题。我使用硬编码逐个列出子集数据表。
但现在我想要动态代码,我不希望逐个列表(硬编码)的原因之一是如果将来我在一个数据集中有50个FD,所以我不可能列出FD一个一个对吗?
我尝试使用下面的脚本,但仍然有错误,它只为我打印第一个f_d的子集数据表。
那么,我该如何迭代直到5 f_d?(因为现在我有5个f_d)
谢谢。
dt = Open( <PATH to="" open="" data="https://community.jmp.com/" table="">);
// Change the column name "F D" to "f_d"" to match the example
dt:F D << set name( "f_d" );
a = {"S_GX_F40", "S_GX_Z40","S_III_E110","S_III_E80","S_III_SL150"};
dt << Select Where( Starts With( :f_d, a[1] ) );<BR />baseDT = dt << Subset( output table name( "Subset" ), selected rows( 1 ), selected columns( 0 ) );<BR />For( i = 1, i <= N Items( a ), i++,<BR />dt << Select Where( Starts With( :f_d, a ) );<BR />TempDT = dt << Subset( output table name( "Subset" ), selected rows( 1 ), selected columns( 0 ) );<BR />baseDT = baseDT << concatenate( TempDT, append to first table( 1 ) );<BR />Close( TempDT, nosave );<BR />);<BR />
</PATH>
感谢Craige_Hales的回复。
但我现在只能生成单个子集数据表。
如何生成所有子集数据表?我有5个f_d,所以我需要生成5个子集数据表。
在我的编码中,我使用循环,但似乎无法运行。
谢谢
列是字符列吗?在消息中,“a”上没有下标,这可能意味着它是列表而不是列表的元素。
dt = Open( "$sample_data/big class.jmp" );
letters = {"B", "C"};
dt << selectWhere( Starts With( dt:name, letters[2] ) );
dt << subset( selected rows( 1 ) );
名称以C开头
当我运行脚本时,它会出现此错误:
参数应该是访问或评估'开始',坏参数(S),开始于/ * ### * /(:f_d,a)的字符{1}
那么,我该如何解决呢?
谢谢。