使用行时,获取选定行会导致错误嘿,
我不明白为什么以下会导致错误:
For( i = 1, i <= N Items(list), i++,
item = list[i];
rows = dt << Get Rows Where(
dt:foo == item
);
Column(dt, "bar" )[rows] = "foobar";
);
错误是:
“无法设置“bar”列的值,因为行号 (-1) 无效。{941}”
谁能启发我吗?
谢谢你!
回复:使用行时,获取选定行会导致错误我认为这个错误可能是由于当前的数据表造成的。下面的脚本会出错,但如果您注释掉当前数据表(dt)行,它会按预期工作。我不确定为什么会这样 - 我们将进一步研究它,看看是否可以进行更改以避免更改当前数据表()。
dt=Open("$SAMPLE_DATA/Big Class.jmp");
dt<<SELECT where=""></SELECT>回复:使用行时,获取选定行会导致错误你的猜测有点正确。 “dt”实际上是原始数据表。 从那里我导出其他表格,然后确定我想要选择的项目。
现在,我返回到“dt”并执行“<< Get RowsWhere(我想要获取的项目)”来获取行号。 然后我喜欢设置“dt:colum[rows i got] = ...”。
抱歉,我无法更好地解释它或提供数据。
回复:使用行时,获取选定行会导致错误您的“dt”表是从另一个表派生的吗?我认为它可能试图将行号从一个表映射到另一个表,但在不了解更多数据的情况下很难确定。
回复:使用行时,获取选定行会导致错误感谢您的快速回答!
该列已正确定义,我现在尝试了许多变体。 将矩阵转换为列表并对其进行迭代等 --> 不起作用。
我知道它应该可以正常工作。 我实际上在同一个脚本中使用“<< Get RowsWhere”并且它有效。
但是,我现在切换到旧的 For Each Row 循环来实现这一点,这里没有问题。
回复:使用行时,获取选定行会导致错误这是您的脚本,使用一些示例数据运行,这些数据在运行 JMP 12 或 JMP 14 时不会出现问题。我要检查您的数据的是“bar”列被定义为字符列。
names default to here(1);
dt=New Table( "Example",
Add Rows( 3 ),
New Column( "foo", Character, "Nominal", Set Values( {"a", "", "a"} ) ),
New Column( "bar", Character, "Nominal", Set Values( {"", "", ""} ) )
);
list = {"a","b"};
For( i = 1, i <= N Items(list), i++,
item = list[i];
rows = dt << Get Rows Where(
dt:foo == item
);
Column(dt, "bar" )[rows] = "foobar";
);