取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
See how to use JMP Live to centralize and share reports within groups. Webinar with Q&A April 4, 2pm ET.
选择语言 隐藏翻译栏
查看原发布的话题

如何计算一组数据的中位数

lukasz
Level IV

大家好,
我有测试组 A 和 B,4 个不同的项目,Param2(Param1 值的最大值)保存在相应项目的第一个单元格中。 Param2 的值有时是按手牌提供的。 现在我想计算每个测试组的Param2的中位数并再次保存
在每个测试组开始的第一个单元格中,如下表所示。 我将不胜感激您提示我如何在脚本中做到这一点。
感谢你并致以真诚的问候。

undefined

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

1 个已接受解答

已接受的解答
jthi
Super User

回复:如何计算一组数据的中位数

使用 Col Median 计算各组的中位数。 然后将其与 if 语句结合使用 Col Min 检查组的第一行

例子:

Names Default To Here(1);

dt = New Table("Untitled",
 Add Rows(8),
 New Column("Group", Character, "Nominal", Set Values({"A", "A", "A", "A", "B", "B", "B", "B"})),
 New Column("Param", Numeric, "Continuous", Format("Best", 12), Set Values([5, ., ., 6, 3, ., 2, .])),
 New Column("Column 4", Numeric, "Continuous", Format("Best", 12), Set Values([., ., ., ., ., ., ., .]))
);


dt << New Column("Med", Numeric, Continuous, Formula(
 If(Row() == Col Min(Row(), :Group),
  Col Median(:Param, :Group)
 ,
  .
 )
));

undefined

 

2 条回复2
jthi
Super User

回复:如何计算一组数据的中位数

使用 Col Median 计算各组的中位数。 然后将其与 if 语句结合使用 Col Min 检查组的第一行

例子:

Names Default To Here(1);

dt = New Table("Untitled",
 Add Rows(8),
 New Column("Group", Character, "Nominal", Set Values({"A", "A", "A", "A", "B", "B", "B", "B"})),
 New Column("Param", Numeric, "Continuous", Format("Best", 12), Set Values([5, ., ., 6, 3, ., 2, .])),
 New Column("Column 4", Numeric, "Continuous", Format("Best", 12), Set Values([., ., ., ., ., ., ., .]))
);


dt << New Column("Med", Numeric, Continuous, Formula(
 If(Row() == Col Min(Row(), :Group),
  Col Median(:Param, :Group)
 ,
  .
 )
));

undefined

 

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

lukasz
Level IV

回复:如何计算一组数据的中位数

你好,

谢谢你的建议。 它正在起作用,但是我注意到我的数据中有一些其他甚至高级别组,需要计算较低级别组内的中位数。 我稍微修改了 if 语句:

此致

dt << New Column("Med", Numeric, Continuous, Formula(
 If(Row() == Col Min(Row(), :High_level_Group, :Low_level_Group),
  Col Median(:Param, :High_level_Group, :Low_level_Group)
 ,
  .
 )
));

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。