你好,
我有一个项目,我的目的是从我的数据表 (1) 中提取每列的平均值、最大值和最小值,并将结果写入新表 (2)。
我找到了这部分代码,它似乎对少数列有效,但不是全部。我有大约 300 列,但只有其中 20 列的结果。
For( i = 1, i <= N Col( dt ), i++,
If (:Trial[i] =="TrialName",
If( Column( dt, i ) << get data type == "Numeric",
Write( "\!n", Column( dt, i ) << get name );
Write( Column( dt, i ), "\!nMin: ", Col Min( Column( dt, i ) ) );
Write( "\!nMax: ", Col Max( Column( dt, i ) ) );
Write( "\!nAverage: ", Col Moving Average( Column( dt, i) ) );
Write ("\!n");
)
)
); 我可以在日志中看到结果,但我无法将结果写入新表 (2) 的右列。
查看更多...此代码显示类似以下内容:
第 1 列
最小值 : 10
最大:50
平均 :30
下面是我想要的一个例子:
表 1: 第 1 列: 第 2 列: --> 表 2 -----> 第 1 列: 第 2 列:
10 45.2 最大 : 50 最大 : 52.4
20 48.3 分钟 : 10 分钟 : 18.3
30 36.7平均值 : 30 平均值 : 40.18
40 52.4
50 18.3
--->
1. 我认为我的所有数据都不被视为数字,所以 JMP 不想计算最小值、最大值和平均值,但我没有找到“强制”数据类型的方法。
2. 我没有把我的成绩写在最终表格的栏目中(2)。
我并不要求完整的答案,而只是寻求建议,因为我真的陷入困境。
谢谢 !
感谢大家的提示! 我将在下周处理这个问题。
我已经阅读了所有内容,我不知道可以使用 JMP 预设来做到这一点。
我的意思是运行一个脚本以获得最终结果,以便每个人都能轻松使用。 我想我可以编写您向我展示的步骤。
谢谢你 !
您可以使用 JMP 以交互方式获得您想要的结果。 我将使用 Sample Data 文件夹中的 Fitness 进行说明。 假设数据表是打开的。
第 1 步:计算统计数据
- 推出分配具有所有感兴趣的数据列的平台(年龄通过最大脉冲).
- 右键单击汇总统计表格并选择制作组合数据表.
第 2 步:按照您想要的方式重新排列结果。
- 选择表格 > 拆分. 选择是列并单击拆分. 选择第 2 栏并选择拆分列. 选择保留全部. 点击好的.




我的意思只是为了说明一个快速的交互式过程。 它可以在脚本中捕获为@txnelson建议。 它可以根据需要在每个步骤进行定制。
您描述的项目可以使用内置 JMP 平台之一在 JMP 中生成。一旦平台以交互方式运行,运行它的 JSL 就可以直接从 JMP 获得。我建议您采用不同的方法来解决问题。
下面是他运行平台后的开始数据表和结果数据表。


要写入其他表,您可以使用其中的一些 Add Rows() 或 New Column()。 Write() 只会将值打印到 JMP 日志中。 然后还有数据表下标,您可以使用 Tabulate() 或 Summary() 来计算统计数据(甚至可以将 Distribution 与 make into datatable 结合使用)。
对于“强制”值是数字(小心这一点,因为这会导致数据丢失)你可以尝试使用 << Set Data Type("Numeric")
有关函数的更多信息,请参阅 JMP 帮助菜单中的脚本索引