通过 JSL 实现汇总表的附加功能我想知道如何获得汇总表但包含其他统计信息。
例如,模式()是一个可以在公式中使用的函数,但这不起作用:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary( Group( :Age ),
subgroup( :sex ),
Mode( :Height )); // Mode isntead of mean我还想通过获取该组的最后一个或第一个数字来总结该表。
高级统计建模消费者和市场研究内容组织数据混合和清理数据探索和可视化实验设计大规模定制质量和工艺工程回复:通过 JSL 提供汇总表的附加功能您可以通过设置汇总表(或任何表功能)的可见性(私有、不可见、可见)来更快地使用它们。当我处理非常大的文件并且只需要提取我使用的私有模式时。
回复:通过 JSL 提供汇总表的附加功能我正在测试这种方法,恐怕这是不可行的。
在对大表(五十万行和数百列)中的许多项目进行重新分组时,JMP 使用显示分布的时间太长。
相反,汇总表中的默认函数计算速度非常快。
回复:通过 JSL 提供汇总表的附加功能使用发行平台作为获取这些内容的方法是一个不错的技巧。
我已经在这里添加了请求。将汇总表函数扩展到任何已定义的函数(例如模式、kurt、skew 等)
回复:通过 JSL 提供汇总表的附加功能你好@FN ,
即使模式不是表摘要中的选项,也一定有很多方法可以满足您的要求。 您可以在分发平台的附加汇总统计表中手动询问或点击as @ian_jmp建议。 否则,请尝试使用 Brady_brady 的添加:
JMP 的扩展汇总统计插件它从菜单中引用模式。
或者,尝试以下脚本:
Names Default To Here( 1 );
// Open Data Table: Big Class.jmp
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// get frequencies for modes
dt2 = dt << Summary(
Group( :Age, :sex, :height ),
Link to original data table( 0 )
);
// delete all rows that are not modes
dt2 << select where( Or( :N Rows != Col Max( :N Rows, :age, :sex ), :N Rows == 1 ) );
dt2 << delete rows;
// indicate first and last values per group - Not min and max unless table is first sorted!!!
dt << New Column( "id age", Numeric, "Continuous", Format( "Best", 12 ), Formula( Sum( :age[Index( 1, Row() )] == :age ) ), eval formula, );
dt:id age << delete formula;
// remove all rows that are not first or last
dt << select where( And( :id age != Col Max( :id age, :age ), :id age != 1 ) );
dt << delete rows;
// create one table with all data and sort it
dt3 = dt << concatenate( dt2, Create source column );
dt3 << New Column( "Value",
Character,
"Ordinal",
Formula( If( :id age == 1, "First", :id age > 1, "Last", :N Rows > 1, "Mode" ) ),
Set Property( "Value Order", {Custom Order( {"First", "Mode", "Last"} ), Common Order( 0 )} ),
);
dt3 << sort( By( :age, :sex, :Value ), Order( Ascending ), replace table );
请注意,在大班的情况下,并非所有组都有明确的模式。我的方法是删除它最高频率等于1。
请告诉我们它是否有效或需要改进的地方。
罗恩
回复:通过 JSL 提供汇总表的附加功能FWIW(如果你了解一点 JSL),你可以做这样的事情:
Names Default To Here( 1 );
// Sample data
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Invisible Distribution with 'By' group(s)
dist = dt << Distribution(Continuous Distribution(Column( :height ),Customize Summary Statistics(Mode(1))), By(:age, :sex), Invisible);
// Get the Summary Stats
dt2 = Report(dist[1])[TableBox(2)] << makeCombinedDataTable;
Report(dist[1]) << closeWindow;
// Retain only the Mode
dt3 = dt2 << Subset(Rows(dt2 << getRowsWhere(:Column 1 == "Mode")));
dt3 << setName("Mode Values");
Column(dt3, "Column 1") << setName("Statistic");
Column(dt3, "Column 2") << setName("Value");
Close(dt2, NoSave);
我也会考虑JMP 愿望清单。
回复:通过 JSL 实现汇总表的附加功能在 JMP 中,有多种方法可以生成分组汇总统计数据。每种方法都会提供一些统计数据,但不会提供其他统计数据。
分发平台和标头统计远远领先于其他(Graph Builder、JSL Col...功能)。
https://community.jmp.com/t5/Community-Wish-List/Wish-list-new-Label-user-experience/idc-p/771691/highlight/true#M60
我猜其他平台的程序员都急于赶上来……