总结功能我在工作过程中经常使用汇总功能。通常,我想要变量的频率分布。 为此,我使用 Summarize( ex=By(dt:var), exCnt = Count(dt:var))。 ex 包含变量的水平,exCnt 包含频率分布。 当 var 是数字时,这可以正常工作,但当 var 是字符串时,则不行。 我使用的解决方法是创建一个虚拟序列(1, N Rows(dt), 1) 数值变量并运行此语法 Summarize( ex=By(dt:var), exCnt = Count(dt:dummy))。
这工作正常,但想知道是否有一种方法可以在没有额外的虚拟列的情况下完成我所需要的?
真挚地,
马特
自动化和脚本编写数据混合和清理回复:总结函数我很可能会使用私有汇总表,获取值然后关闭它。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt << Summary(Group(:sex), Freq("None"), Weight("None"), Link to original data table(0), private);
ex = Column(dt_summary, 1) << get values;
exCnt = Column(dt_summary, 2) << get values;
Close(dt_summary, no save);
Show(ex, exCnt);回复:总结函数@jthi , 感谢您的快速回复。 这就是我在插入虚拟列之前所做的事情。 它并不理想,但也不错。
回复:总结函数您还可以直接将计数列添加到您拥有的表中。 我认为使用关联数组获取唯一值应该可行
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
new_col = dt << New Column("Counts", Numeric, Continuous, << Set Each Value(
Col Number(:name, :name)
));
aa = Associative Array(:name << get values, :Counts << get values);
//dt << Delete Columns(new_col);
show(aa);
但根据数据,这可能比仅使用汇总表慢。
您还可以制作与此相关的愿望清单项目,并提供应为字符列(第一个、最后一个、众数、计数...?)提供的统计信息列表,如果这有用(并且很可能有用)。 有一个现在已经有了已归档,但请求的结构不是很好字符数据的 Sumerize/Summary 聚合函数。 将字符向量连接成标量 (by)但你也可以对此发表你的想法。
当我做脚本的时候分析列我至少使用了汇总表、汇总函数、分布平台和矩阵运算来计算不同的统计数据,具体取决于哪个最快(我想我没有尝试 Query())。
回复:总结函数我添加了一些想法并发布了新的愿望:
摘要和制表:为字符列添加聚合选项
让我们祈祷它能被接受:)
有了这样的选项,制表将变得非常有用!
与附加列相比,最大的好处是:该列是静态的。 您必须定义聚合级别 - 然后它就被修复了。
存在于汇总表或表格中的字符聚合更加动态。
根据附加结构的不同,它可以产生完全不同的结果。
如果每行有一天,则按天聚合,如果是一个月,则按月聚合。