☐ 很酷的新功能
☐ 可以帮助很多用户!
☐ 删除一个“错误”
☐ 很高兴拥有
☑ 没人需要
对于表格框,有一个很好的命令
<< add row( list of values)
添加行。 作为论据,可以提交一个值列表 - 非常优雅并且对肮脏的编码很有用:)
https://community.jmp.com/t5/Discussions/Collection-of-quot-funny-quot-JSL-newbie-questions/mp/559027/highlight/true#M77229
命令
<< add row( ... )
甚至可以发送到数据表。 然后添加一行,但不幸的是,没有价值观。
正如 Jarmo 发现的那样,有一种方法可以指定值,但要复杂得多:尤其是当数据表具有多个列时:
https://community.jmp.com/t5/Discussions/Collection-of-quot-funny-quot-JSL-newbie-questions/mp/559070/highlight/true#M77235
dt << Add Row({"Column 1"n = 1});
我的希望:
像这样的命令
<< add row( list of values)
这也适用于数据表。
嗯,如果用户没有证明预期的值,JMP 中还有许多其他函数会出现问题;)
另一方面,一次性添加行和值会非常容易,只需将值列表移交给数据表——就像表格框一样。
Add Rows 如此严格可能是有原因的。
当用户没有添加足够的值时,您希望该命令如何运行? 你最终会得到非常凌乱的桌子
Names Default To Here(1);
New Window("test",
tb = Table Box(String Col Box("string col", {"a"}), Number Col Box("number col", {1}))
);
tb << add row({"b"});
tb << add row({"b", 2});

您已经可以使用数据表下标来完成此操作(这是我不时使用的,如果我必须将值添加到全部列):
Names Default To Here(1);
dt = New Table("test",
New Column("Col1", Numeric),
New Column("Col2", Numeric),
);
dt << Add Rows(1);
dt[N Rows(), 0] = [1 2];
dt << Add Rows(1);
dt[N Rows(), 0] = [1];
第二个会抛出,因为你试图向行添加的值少于列

使用自定义函数可以处理这个问题,但是如何知道从哪一侧删除值呢? 左,右还是中间? 或者如果数据类型不匹配会发生什么?