如何为 N 个类别创建列公式?我想创建一个列公式来提供列中不同值的数量。我可以使用 JMP 15 中的列查看器、显示汇总函数,但我希望将该值放在列中以用于其他计算。
例如,在大类表中 - “性别”列中的 N 个项目应将 2 显示为 2 个不同的值。
回复:如何为 N 个类别创建列公式?谢谢你, @tx尼尔森& @帕特里克朱利亚诺。
对 JMP 相当陌生,仍在学习。 很高兴了解 Col Number() 运算符。
我附上了我的数据集的样本。 我正在寻找每年每周独特数量的工具。 每个工具每周可以有多行。 我在集合中放置了一个理想的结果栏。
再次感谢你的帮助!
回复:如何为 N 个类别创建列公式?谢谢吉姆!
@CTrahon0526如果您是 JMP 新手,这里有关于 Jim 分享内容的更多详细说明。
您可以将 Col Number() 函数放入列公式中,然后直接在数据表中进行计算。
我附上了一个模拟示例 jmp 数据表。
首先,我使用 JMP 中的即时列公式创建了“年周”列。 右键单击时间列,新建公式列 > 日期时间 > 年周。
然后我创建了一个“按年周计数”列,其中包含以下列公式:
Col Number(:time, :Year Week)
回复:如何为 N 个类别创建列公式?函数是
Col Number(<:column Name>)
有关详细信息,请参阅脚本索引
回复:如何为 N 个类别创建列公式?
@帕特里克朱利亚诺,
有没有办法通过变量获取 N 个项目?
我试图找到每年每个工作周的唯一 N 值。 谢谢。
回复:如何为 N 个类别创建列公式?谢谢@tx尼尔森你就是那个男人!
@帕特里夏_罗斯我还想出了以下颂词来感谢其他一些 JMP 团队成员的慷慨支持。
Summarize( x = by( :sex ) );
N Items( x );
非常相似,但少了几行。
回复:如何为 N 个类别创建列公式?这是我将使用的公式:
If( Row() == 1,
Summarize( Current Data Table(), bygp = by( :sex ) );
n = N Items( bygp );
);
n;
回复:如何为 N 个类别创建列公式?我不会做你在公式中要求的事情。相反,我会:
- 单击 Tables=>Summary 并创建一个汇总数据表,按 Year、WW 和 ToolID 分组
- 使用新创建的汇总数据表,再次单击“Tables=>Summary”,并通过仅按 Year 和 WW 进行分组来创建新的汇总数据表。新表的名为 # Rows 的列将为您提供每年/WW 的唯一 toolID 数量。
- 接下来,单击原始数据表,然后再次使用表下拉菜单,选择更新。这会将数据从第二个汇总表复制到原始表中。在更新对话框中,
- 选择要更新的表(第二个汇总表)
- 选择匹配列
- 从每个表中选择“年份”,然后单击“匹配”
- 从每个表中选择 WW,然后单击“匹配”
- 单击“确定”
数据现在将位于您的原始数据表中
回复:如何为 N 类别创建列公式?@CTrahon0526 ,Jim 的解决方案很棒!它教会了您很多有关 JMP 中的表格操作的知识。我同意,在这种情况下,列公式非常棘手。Tables Summary 2X 是一种非常优雅的解决方案。然后使用 Tables > Update 将结果“更新回”原始数据表。最后一步可以以交互方式完成(通过将列从第二个汇总表拖放回第一个汇总表,最后拖放回主表),而不是使用 Tables > Update,但如果您要在许多表上进行此计算,使用 Update 的解决方案更可靠(可重复)。但这让您感受到 JMP 作为基于 GUI 的工具的交互性。
回复:如何为 N 类别创建列公式?拖放功能非常酷。
然而,这种方法有一个巨大的缺点:
它不是动态的。如果将数据添加到表中,则条目将是错误的。
这就是列公式的好处:值始终正确。
令人惊讶的是,JMP 中没有可用的“新列公式”/“JSL”命令Col N 类别() 。
回复:如何为 N 类别创建列公式?希望添加这样的功能
... 到 JSL
... 到新列公式
... 至图形生成器
Col N 类别
我猜世界上只有少数 JMP 用户不需要它;)
大多数 JMP 用户都很高兴在未来版本的 JMP 中看到这样的功能(......以及密集排名)
回复:如何为 N 类别创建列公式?[已删除] 未出现在正确位置。
回复:如何为 N 类别创建列公式?有点晚了,但我正在寻找相同问题的解决方案。 @CTrahon0526的数据表中的以下公式重现了“每年每个工作周的唯一工具 ID”列中的值
Col Sum( Col Cumulative Sum( 1, :Year, :WW, :Tool ID ) == 1, :Year, :WW )
回复:如何为 N 类别创建列公式?很好,我可以经常用到它 - 所以,现在我有:
Names Default To Here( 1 );
Try(dt = CurrentDataTable(), stop());
updateLBox = Function( {t},
(t << sib) << setitems( (t << topparent)[listboxbox( 1 )] << getselected )
);
nw = New Window("count unique entries",
<< Type("Modal Dialog"),
Border Box( Left( 10 ), Right( 10 ), bottom( 5 ),
V List Box(
Lineup Box( N Col( 1 ), spacing( 10 ),
// Text Box( "XG Boost Specification" ),
// colistbox only necessary if the script is standalone
H List Box(
Panel Box( "Select Columns", Col List Box( all, nlines( 15 ) ) ),
Panel Box( "Cast Selected Columns into Roles",
Lineup Box( N Col( 2 ),
Button Box("Unique",
<<SETFUNCTION></SETFUNCTION>... available at a single mouse click : )
回复:如何为 N 类别创建列公式?为了获得更高级别的互动性 - 请在此处投票:
转换列——像汇总统计数据一样舒适吗?
例如显示汽车制造商的数量 - 各年份的正确值 - 并按门大小划分:
... 可能还有更多有用的应用程序:)
