下面是一个使用 Col Cumulative Sum() 进行比较的选项
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(14),
Compress File When Saved(1),
New Column("Column 1",
Character,
"Nominal",
Set Values(
{"No", "No", "No", "No", "Yes", "No", "No", "No", "No", "No", "Yes",
"No", "No", "No"}
)
),
New Column("Column 2",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3])
)
);
dt << New Column("Series", Numeric, Continuous, Formula(
Col Cumulative Sum(:Column 1 == "Yes") + 1
));谢谢!!
现在我需要更多帮助,如果我有另一列并且我希望它“重置”计数,如下所示:
| 第 0 列 | 第 1 列 | 系列 |
| 红色的 | 不 | 1个 |
| 红色的 | 不 | 1个 |
| 红色的 | 不 | 1个 |
| 红色的 | 不 | 1个 |
| 红色的 | 是的 | 2个 |
| 红色的 | 不 | 2个 |
| 红色的 | 不 | 2个 |
| 蓝色的 | 不 | 1个 |
| 蓝色的 | 不 | 1个 |
| 蓝色的 | 不 | 1个 |
| 蓝色的 | 是的 | 2个 |
| 蓝色的 | 不 | 2个 |
| 蓝色的 | 不 | 2个 |
| 蓝色的 | 不 | 2个 |
| 绿色的 | 不 | 1个 |
| 绿色的 | 不 | 1个 |
| 绿色的 | 不 | 1个 |
| 绿色的 | 不 | 1个 |
| 绿色的 | 不 | 1个 |
| 绿色的 | 是的 | 2个 |
| 绿色的 | 不 | 2个 |
| 绿色的 | 不 | 2个 |
我试过这个:
dt << New Column("Series", Numeric, Continuous, Formula(If( :column 0 == Lag( :column 0, 1 ),
(Col Cumulative Sum(:column 1 == 1) + 1),
(Col Cumulative Sum(:column 1 == 1) + 0)
)));
列累计和()确实支持 所以你可以使用 :Column 0 作为 byvar 并且它将对从 :Column 0 中找到的每个值单独执行计算
您好,我需要有关使用 JSL 创建列的帮助,该列填充一个系列并在由另一个列值触发时增加一个。
就像下面的第 2 列一样,每当第 1 列中有一个“是”时,它就会将第 2 列中的值增加 1。
希望我足够清楚。
| 第 1 列 |
第 2 栏 |
| 不 |
1个 |
| 不 |
1个 |
| 不 |
1个 |
| 不 |
1个 |
| 是的 |
2个 |
| 不 |
2个 |
| 不 |
2个 |
| 不 |
2个 |
| 不 |
2个 |
| 不 |
2个 |
| 是的 |
3个 |
| 不 |
3个 |
| 不 |
3个 |
| 不 |
3个 |