在列中找到具有条件的第一个元素嗨,我有一个包含2列的数据:group和score,我想计算第3列,该列名为first,它返回“不是分组的第一组得分10000000000。因此在此示例数据中,group a = 0,group b = 53。并且由于组c仅包含10000000000,因此没有任何显示。
有人可以帮我提供有关此列的jmp公式,但不能帮助我吗? 太感谢了!
| 团体 | 分数 | 第一的 |
| 一个 | 10000000000 | 0 |
| 一个 | 0 | 0 |
| 一个 | 100 | 0 |
| 一个 | 10000000000 | 0 |
| 一个 | 8 | 0 |
| 一个 | 10000000000 | 0 |
| 一个 | 10000000000 | 0 |
| 一个 | 10000000000 | 0 |
| b | 53 | 53 |
| b | 10000000000 | 53 |
| b | 1个 | 53 |
| C | 10000000000 | 。 |
| C | 10000000000 | 。 |
| C | 10000000000 | 。 |
分析工具回复:在列中找到第一个有条件的元素这是写公式的一种方法
curgroup = :group;
value = :score[Min(
Current Data Table() << get rows where(
:group == curgroup & :score != 10000000000
)
)];
回复:在列中找到第一个有条件的元素嗨,吉姆,谢谢你的回答。 我将其粘贴到公式中并替换了列名称,但是它没有产生正确的答案。 您能帮我检查以下屏幕截图吗? 谢谢你。
回复:在列中找到第一个有条件的元素公式的屏幕转储不让我看到您是否正确引用了列。也就是说,您是否在列名前面放置“:”,而不是在curgroup和value前面?
您收到什么错误消息?
当您说它不能正常工作时,这是什么意思?没有得到正确的值,还是没有给您任何结果?
我在示例数据表中附加了名为Jim's Formula的列,该列已将我的公式应用于数据表。这样一来,您便可以拥有公式的有效版本,以与要创建的公式进行比较。
回复:在列中找到第一个有条件的元素谢谢吉姆! 我将您的公式直接粘贴到我的数据中,然后再次检查-它可以在大约7000行的顶部工作,但是从那开始就全都是“。”,没有显示第一个不是10000000的数字。 当我输入公式时,它确实运行了很长时间,因此我必须按esc键才能解冻jmp。是造成这种情况发生的原因吗? 我总共有大约7000k行。回复:在列中找到第一个有条件的元素有很多行。 此公式可能需要较少的内存。 假定≠10000000000的第一个值始终小于10000000000。
If(Col Min(:score, :group) == 10000000000,
.,
Col Min(
:score[Col Min(Row(), :group, :score == 10000000000)],
:group
)
)
回复:在列中查找具有条件的第一个元素这是解决问题的不同方法。这种方法是一个脚本。应该比以前的单公式列方法更有效。它首先找到第一个值,将它们提取到一个新表中,然后使用更新平台将这些值合并回原始数据表。
names default to here(1);
dt=current data table();
// Create a column that finds the first values
dt<<NEW column=""></NEW>