從一列替換多行值無法正常工作JMP 社區您好,
我遇到過一個很奇怪的問題。 這是我的代碼:
dt_temp = data table("aaaa");
dt_temp << Summary( Group( :Column1,:Column2), Freq( "None" ), Weight( "None" ),output table name( "summary" ) );
data table("summary") << select where (:N rows >= 2 & !contains(:Column1,"AA") & !contains(:Column1,"BB") );
rows = dt_temp << get selected rows;
dt_temp:Column3[rows] = "";
//Column(dt_temp, "Column3")[rows] = "";
當我運行此代碼時,即使行的值類似於 [10, 11, 20, 21],但第 3 列的最終結果是不同的。 它替換其他行(假設行 1、5、...)而不是獲取選定行中的行。
你能幫我解決這個問題嗎?
質量和工藝工程分享和交流結果回复:從一列替換多行值無法正常工作謝謝吉姆和賈莫! 這兩種解決方案對我來說都很有魅力!
回复:從一列替換多行值無法正常工作在原始表中設置值之前嘗試關閉匯總表。摘要錶鍊接到原始表並阻止其更新。
dt_temp = data table("aaaa");
dt_summ = dt_temp << Summary( Group( :Column1,:Column2), Freq( "None" ), Weight( "None" ),output table name( "summary" ) );
data table("summary") << select where (:N rows >= 2 & !contains(:Column1,"AA") & !contains(:Column1,"BB") );
rows = dt_temp << get selected rows;
close( dt_summ, nosave );
dt_temp:Column3[rows] = "";
//Column(dt_temp, "Column3")[rows] = "";回复:從一列替換多行值無法正常工作基於此數據表下標我設置單元格值的方式可能已在 JMP13 中可用。
我會盡量避免循環,但我無法訪問 15 以上的舊版本 JMP,所以我不確定這是否有效:
Names Default To Here(1);
dt_temp = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt_temp << Summary(Group(:age, :sex), Freq("None"), Weight("None"), output table name( "summary" ));
dt_summary << Select Where(:N Rows >= 3 & !Contains(:sex, "M"));<BR />
//get rows which should be set to empty
rows = dt_temp << Get Selected Rows;
//get all values in name column
colValues = dt_temp:name << get values;
show(colValues);
//set selected rows in the colValues list to ""
colValues[rows] = "";
show(colValues);
dt_temp:name << Set Values(colValues);
回复:從一列替換多行值無法正常工作我正在使用 Jmp Pro 12.2.0,64 位版本。 日誌文件供您參考:

雖然顯示行號(-1)的日誌文件不是無效的,但是當我顯示行時,沒有這樣的行。
回复:從一列替換多行值無法正常工作您使用的是哪個版本的 JMP? 我正在使用 15.2.1,我的示例似乎對我來說效果很好:

回复:從一列替換多行值無法正常工作嗨,賈莫,
感謝您的建議,但它似乎對我不起作用。
為了澄清,我想根據匯總表的條件替換原始表中的值。
我也嘗試運行你的代碼,結果如下:
從匯總表中選擇的行:

從主表中選擇的行。 選擇了 15 行,但它只替換了每組的第一行:

回复:從一列替換多行值無法正常工作您是否嘗試替換原始數據表或匯總表中的值? 這似乎對我來說效果很好:
Names Default To Here(1);
dt_temp = Open("$SAMPLE_DATA/Big Class.jmp");
dt_temp << Summary(Group(:age, :sex), Freq("None"), Weight("None"), output table name( "summary" ));
data table("summary") << Select Where(:N Rows >= 3 & !Contains(:sex, "M"));
rows = dt_temp << Get Selected Rows;
show(dt_temp:name[rows]);
dt_temp:name[rows] = "";
show(dt_temp:name[rows]);