JMP 脚本 - 如何更改“单元格”的值<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想知道如何编写脚本来更改“单元格”的值,该值是脚本中计算的结果。
具体来说,如果计算的值为负数,我希望能够将单元格的值更改为“0”,同时保留所有其他“单元格”。
即使它需要放在一个新列中,也没关系。 例如,如果我有一列计算值,而我关心的值是负数,则创建一个新列,只为该“单元格”显示“0”。
提前致谢。
回复:JMP 脚本 - 如何更改“单元格”的值一个班轮....
dt[dt<< 获取行 where(:ageval < 14)] = 0;
回复:JMP 脚本 - 如何更改“单元格”的值对于这种情况,您可以使用“范围检查”列属性。 这样表就可以承载元数据,并且您不需要另一个表:
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Wait(2);
Column(dt, "age") << rangeCheck( !LT( 13 ) );
Column(dt, "weight") << rangeCheck( LT( 100 ) );回复:JMP 脚本 - 如何更改“单元格”的值您必须更改公式以检查要更改的值,然后在公式中使用条件语句将其更改为您想要的值。
// Sample formula
:A + :B;
If( isMissing(:A+:B) == 1, 0 );
回复:JMP 脚本 - 如何更改“单元格”的值嗨吉姆,
如果您有 IF 命令中定义的“else”和第三个替代项,该脚本的形式是什么?
最好的,
K
回复:JMP 脚本 - 如何更改“单元格”的值伊恩,
我喜欢矩阵方式,但是如果我想清理几个清洗条件不同的列怎么办?
例如在大班
年龄 --> 将所有值 < 13 的单元格设置为空
height --> 将所有值 > 100 的单元格设置为空
假设我有一些所有列条件的参考表。
回复:JMP 脚本 - 如何更改“单元格”的值可以把公式贴出来吗?作为特克斯尼尔森说你可以简单地制作公式的检查部分。
发布公式:
1. 打开数据集并单击公式列旁边的 + 号。
2. 在公式窗口内双击。这将更改窗口以显示公式的 JSL 代码
3. 复制JSL代码并将其发布到此论坛。
新的公式将是这样的:
tmp =放-原来的-公式-这里;
如果( tmp < 0 , 0 , tmp ) ;
回复:JMP 脚本 - 如何更改“单元格”的值您当然可以将条件检查作为公式的一部分
回复:JMP 脚本 - 如何更改“单元格”的值将测试作为公式的一部分有意义吗?
如果(匹配( ... ) < 0 ,
0 ,
匹配( ... )
)
回复:JMP 脚本 - 如何更改“单元格”的值谢谢你们。
我想做的是更改包含公式的列的单元格的值。
大类列“年龄”不是来自公式,因此所有这些建议都可以更改单元格的值。
我有一个专栏,称之为“测试”,它使用匹配公式。 如果匹配公式将其计算为负数,是否可以编写脚本以将该列中的单元格的值更改为零? 如果该值为负数,我希望能够将其强制为零。
回复:JMP 脚本 - 如何更改“单元格”的值我将再迈出这一步。很多次我也做过伊恩展示过的类似事情。从数据表中取出数据并使用矩阵运算符。这在处理大量数据时具有性能优势。然而,以下是我已经使用过很多次的技术,因为它非常快,并且不需要从数据表中提取。
名称默认为此处( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Try( dt:Age[dt << 获取行 where( :Age < 14 )] = 0 );
“Try”函数只是防止 Get RowsWhere 可能返回空矩阵的情况,并且赋值会引发错误。
回复:JMP 脚本 - 如何更改“单元格”的值基于吉姆的回复,如果可能的话,通常认为避免循环是一种良好的做法:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Get the values of age into a vector
ageVals = dt:Age << getValues;
// Find the location of age values less than 14
ageValsLessThan14 = Loc(ageVals < 14);
// Set these values to zero
ageVals[ageValsLessThan14] = 0;
// Put the new values back into the column
dt:Age << setValues(ageVals);
回复:JMP 脚本 - 如何更改“单元格”的值丽贝卡,
我想知道你所问的问题是否需要在比贾斯汀所表现的更基本的层面上进行解释。他的例子确实给了你一个答案,但是,根据你描述问题的方式,我可以推测条件语句的组成部分可能来自当前数据表以外的来源的情况。
JMP 数据表的基础知识之一是任何单元格都可直接寻址。使用贾斯汀的答案中的数据表,只需指定列名和行号即可访问任何单元格。
:Age[1]
指向年龄列的第一行值。更正确的引用方法是使用数据表指针(数据表命名空间)。因此,如果 Justin 的响应中指定的指向数据表的指针是“dt”,那么
dt:Age[1]
是更合适的形式。
以 Justin 的示例为例,我们实际上可以更改适当的值,而不必创建新列。下面的代码将做到这一点
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For( I = 1, I <= N Rows( dt ), I++,
if(dt:Age < 14,
dt:Age = 0
);
);
回复:JMP 脚本 - 如何更改“单元格”的值以下是复制到新列时如何有条件地更改单元格的示例:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
col = dt << New Column( "New Column", Formula( If( :age < 14, 0, :age ) ) );
在您的情况下,您可以将条件更改为小于零而不是 14。