如何通过脚本将单元格值设置为“缺失”?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一个脚本,用于从大型数字数据集中删除族外数据点。当发现某个值超出定义的分布时,则通过使用代码“columnReference[specificCell] = ”将该值设置为缺失。
我曾经工作得很好,但现在看来脚本不喜欢我将单元格值设置为“。”关于如何将单元格值设置为“缺失”有什么建议吗?
回复:如何通过脚本将单元格值设置为“缺失”?我从这个线程中得知您希望以编程方式执行此类操作。 很难给出一般性的指导方针,因为存在太多的可能性。 如果您确实关心效率,您可以分析代码以查看瓶颈在哪里:
http://www.jmp.com/support/help/Debug_or_Profile_Scripts.shtml
在用missing替换0的具体情况下,如果你的数据表(dt)中的所有列都是数字连续的,你可以这样做:
m = dt << GetAsMatrix;
m[Loc(m == 0) ] = .;
dt2 = AsTable(m);
当然,然后您必须修复 dt2 中的列名称和属性。
回复:如何通过脚本将单元格值设置为“缺失”?有人建议执行多种此类数据清理操作的哪种方法具有最佳性能吗?
似乎有很多方法可以完成这些替换,但对于大型数据集,选择最快的方法可能很重要。
我在 10,000 列 x 750 行的数据集上使用了多个下标方法,花了几分钟才用缺失替换 0。
回复:如何通过脚本将单元格值设置为“缺失”?只需使用:
“columnReference[特定单元格] = 空()”
回复:如何通过脚本将单元格值设置为“缺失”?顺便说一句,您不需要显式循环目标行。 您可以通过以下方式使用多个下标简单地同时将缺失值分配给它们:
cleanColumnRef[坏数据点] = . ;
回复:如何通过脚本将单元格值设置为“缺失”?您可以尝试模仿手动删除主菜单(“删除”)命令。 警告,在运行之前保存文件,因为强制“手动”删除将删除前窗口中选择的任何内容。
使用您的术语但没有循环的示例:
dt =打开( “$SAMPLE_DATA/大类.jmp” ) ;
坏数据点= [ 1 , 10 ] ;
清洗列参考=柱子( “高度” ) ;
dt <<去(清洗列参考) ;
dt <<选择行(坏数据点) ;
dt <<将窗口置于前面;
主菜单( “删除” ) ;
回复:如何通过脚本将单元格值设置为“缺失”?我仔细检查了被锁定的列或数据类型错误的列。
感谢您的反馈。我正在分析的数据中添加了一份能力报告。我想因为这是引用数据表,所以它不允许我通过脚本删除单个单元格。然而,它会让我手动删除坏数据点。如果我关闭功能报告,那么我的脚本会再次运行。
似乎应该有一个脚本函数,即使功能报告打开,也可以让我删除数据,因为我可以手动执行此操作。
回复:如何通过脚本将单元格值设置为“缺失”?我从日志中得到的唯一反馈如下。
For( badPt = 1, badPt <= N Row( badDataPoints ), badPt++,
cleanColumnRef[badDataPoints[badPt]] = /*###*/。 /*###*/
);
回复:如何通过脚本将单元格值设置为“缺失”?将缺失值分配给单元格应该很简单。
也许列已被锁定,给定公式属性或设置为字符数据类型?
回复:如何通过脚本将单元格值设置为“缺失”?感觉你的代码中一定有其他东西发生了变化。 例如,这有效:
dt =打开( “$SAMPLE_DATA/Big Class.jmp” ) ;
值=柱子( dt , “高度” ) <<获取值;
值[洛克(值> 60 )] = 。 ;
柱子( dt , “高度” ) <<设置值(值) ;
您看到什么错误?