有关子集创建的更多信息<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,我指的是帖子https://communities.sas.com/message/166376#166376从今年5月开始。
该示例解释了如何通过 1) 首先添加 af 数据过滤器和 2) 然后子集化来创建新数据表:
dt = 打开(大类);
dt << 数据过滤器(添加过滤器(列(:年龄),其中(:年龄== {12,13}),模式(选择(1)));
sub1 = dt<
结果创建了一个名为“regions”的数据表。 不出所料。
我已经使用我自己的数据集创建了一个类似的示例(BigClass 示例有效!!),这对我来说效果不佳。 我怀疑我对某些事情有误解。 这是我的程序流程。
BigClass 示例和我的示例之间的区别在于,当我运行整个脚本时,数据过滤器没有被选中。 (我省略了从 Excel 文件加载文件以便能够向您发送原始代码,其中包含某些名称)。 解释一下:有一个字符列,我想从中仅选择列中文本以“d”或“I”开头的那些行。 我发现有必要创建一个新列来执行数据筛选。 当我总共运行代码时,不会选择行,也不会创建子集数据表。 如果我首先运行代码直到创建新列 Onelettet,然后运行数据过滤器,然后创建过滤器并选择行。 最后创建子集数据表。 但是这些事情应该以脚本运行的方式发生吗? 要么?
这是使用脚本的基础,因此我需要深入了解这些细微之处。
问候
波尔
回复:更多关于子集创建使用MS的示例代码,这里有一个非常健壮的直接解决方案,因为它不需要数据表中的行切换到选中状态:
dt =新表( “测试” ,
添加行( 5个) ,
新建专栏( “指导员” ,特点,
设置值( { “鼓” , “喇叭” , “七弦琴” , “单簧管” , “迪吉里杜管” } )
)
) ;
选择= dt <<获取行在哪里(以。。开始( :指导, “d” ) |以。。开始( :指导, “我” ) ) ;
dt <<子集(输出表名( “自我指导” ) ,行数(选择) ,选定的列( 0 ) ) ;
回复:更多关于子集创建如果您已提供参考,则关闭数据过滤器很简单。
去向= dt <<数据过滤器( ... ) ;
去向<<关;
回复:更多关于子集创建嗨女士,
添加等待();在公式评估解决了在执行子集命令之前过滤器未设置的问题之后。 谢谢你。
关闭过滤窗口的命令是什么? 我不希望它在子集之后留在屏幕上。 我只想要数据集。 其实我根本不需要看。
是的,我认为选择可以在一份声明中完成。 只是不知道该怎么做。
谢谢
波尔
回复:更多关于子集创建如果没有用于测试代码的表格,很难说出为什么它在特定情况下不起作用。 如果代码依赖于在同一脚本中创建的列公式,我的经验是公式计算可能会滞后于脚本执行,从而导致意外结果。 为避免这种情况,可以尝试插入等待()要么<< 评估公式在关键步骤。
但是在这种特殊情况下,如果我理解正确,则不需要新列(或数据过滤器)。 也许下面的例子会有所帮助。
//示例表
dt =新表( “测试” ,
添加行( 5个) ,
新建专栏( “指导员” ,特点,
设置值( { “鼓” , “喇叭” , “七弦琴” , “单簧管” , “迪吉里杜管” } )
)
) ;
// 使用数据过滤器选择以 d 或 l 开头的 instr
选择= dt <<获取行在哪里(以。。开始( :指导, “d” ) |以。。开始( :指导, “我” ) ) ;
dt <<数据过滤器(
添加过滤器(列( :指导) ,在哪里( :指导= :指导[选择] ) ,模式(选择( 1个) ) )
) ;
dt <<子集(输出表名( “自我指导” ) ,选定的行( 1个) ,选定的列( 0 ) ) ;
// 或者没有数据过滤器的更直接的方法
dt <<选择哪里(以。。开始( :指导, “d” ) |以。。开始( :指导, “我” ) ) ;
dt <<子集(输出表名( “自我指导” ) ,选定的行( 1个) ,选定的列( 0 ) ) ;