根据颜色选择单元格你好,
在JMP中运行离群值分析工具后,我对包含离群值的单元进行了颜色编码。 如何选择所有这些单元格并将其替换为“异常值”? 下一步,将所有其他单元命名为“正常”。
让我知道这是否可行。 这篇文章所附的数据表快照。

脚本编写回复:根据颜色选择单元格我不知道一种从单元格获取单元格颜色的简单方法,更不用说为一列中具有特定颜色的单元格选择所有行了。但是,我这样做的方法是为感兴趣的列提取脚本,然后搜索脚本的“颜色单元”区域,并解析出行。
我附上了样本数据表。数据表是使用异常值分析工具生成的。 在该数据表上运行以下脚本时,它将在SS-E列中找到浅红色的单元格(将JMP的颜色设置为35),并将这些单元格的值更改为“异常值”,然后将其全部更改其他单元格设置为“正常”。

请注意,要将单元格更改为“异常”或“正常”,必须将列更改为字符列,并替换所有原始数据。
这是脚本
names default to here(1);
dt=current data table();
x=char(:name("ss-e")<<GET script=""></GET>回复:根据颜色选择单元格作为替代方法@txnelson ,值得回顾一下表格的制作方式。 利用“添加到缺失值代码”选项制作了“ Penta”样本数据的附加版本:

然后,您可以使用像这样的代码,它具有额外的好处,即您实际上并未更改表中的数据值:
NamesDefaultToHere(1);
dt = DataTable("myPenta");
// Pick a column
myCol = Column(dt, "L4");
// Get the values deemed to be outliers
mvc = myCol << getProperty("Missing Value Codes");
// Delete this column property, else the subsequent 'getValues()' will return '.'
// rather than the cell value in the case of outliers
myCol << deleteProperty("Missing Value Codes");
// Get all the values
vals = myCol << getValues;
// Build the list to go into the 'Value Label' property
valList = {};
for(v=1, v<=NItems(vals), v++,
if(Contains(mvc, vals[v]),
// We have an outlier . . .
InsertInto(valList, EvalExpr(Expr(vals[v]) = "Outlier")),
// Else the point is 'Normal'
InsertInto(valList, EvalExpr(Expr(vals[v]) = "Normal"))
)
);
// Add the 'Value Label' property
myCol << valueLabels(valList);回复:根据颜色选择单元格这很棒!
迭代遍历每个列名而不是仅追加一个列名的语法是什么? 例如,如何限制此循环仅浏览1-10列?
感谢脚本帮助,这是很棒的东西。