使用行時,獲取選定行會導致錯誤嘿,
我不明白為什麼以下會導致錯誤:
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";
);