从一列替换多行值无法正常工作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]);