如何在公式字符上编写命令<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我想知道如何使用公式字符功能编写可行的命令。
例如,我有一列角色数据,其中包含从 1.0 级到 9.0 级的数据。
我想将此信息转换为仅显示 1.0 到 9.0 的另一列,如何使用公式字符函数为此编写命令?
我想知道的另一个请求是如何将字符数据列更改为新列中的另一个语句。
例如,我有一个字符列的数据显示甜,美味,酸,...我想将其更改为甜-->Bin1,美味-->Bin2,酸-->Bin3。 如何使用公式字符将 sweet-->Bin1 转换为新列中的值。
谢谢,
回复:如何在公式字符上编写命令嗨伯尼,
很抱歉这对你不起作用! 我想我可能选择了一个不明确的列名,我认为这可能是造成混乱的根源。 在附加的数据集中,我有一个名为“OriginalColumn”的列,下面的脚本在 Word() 函数中引用该列。 word 函数不接受任何要查找的单词的参数,只接受哪个单词编号以及要查找的列。 当您想要删除“Class”列名称时,我错误地使用了“Class”列名称!让我知道下面的脚本是否适用于所附的表。 如果是这样,您应该能够通过更改“ :OriginalColumn ”来更改它以适用于您想要的任何表,以匹配表中列的任何名称。
朱利安
//新建一个列
当前数据表() <<新专栏( “仅班级编号” ,特点) ;
//停止表更新,直到完成所有更改,适合大型表
当前数据表() <<开始数据更新;
//将更改应用到每一行
对于每一行(
:仅班级编号=单词( 2 , :原创专栏)
) ;
// 结束“数据更新”
当前数据表() <<结束数据更新;
回复:如何在公式字符上编写命令嗨朱利安,
实际上,我想将其保留为字符而不是将其转换为数字。
我只想去掉原来的“Class 9.0”中的“Class”,只显示“9.0”。
我使用了(2,Class)这个词,但没有成功。
谢谢,
回复:如何在公式字符上编写命令你好伯尼426
听起来您希望结果列是数字,是吗? 如果是这样,彼得上面的建议就是处理这个问题的正确方法。 当您提取字符串的一部分时,它仍然是字符串,除非您告诉 JMP 您要将字符串转换为数字。 这是一个完整的脚本,其中 Num() 函数包裹着 Word() 函数,并且还进行了一项更改,以使新列在创建时为数字。
希望这对你有用!
朱利安
//创建一个新的NUMERIC列
当前数据表() <<新专栏( “仅班级编号” ,数字) ;
//停止表更新,直到完成所有更改,适合大型表
当前数据表() <<开始数据更新;
//将更改应用到每一行
//下面的函数将查找名为“Class”的列
//如果数据位于具有不同名称的列中
//将 :Class 更改为列名,但是
//请务必保留 : 因为这可以让 JMP 知道您是
//引用一列。
//该函数还将Word()函数包装在Num()中
//将字符输出转换为数字
//允许结果列保留数字
对于每一行(
:仅班级编号=数量(单词( 2 , :班级) )
) ;
// 结束“数据更新”
当前数据表() <<结束数据更新;
回复:如何在公式字符上编写命令尝试使用 NUM 函数将字符串数字转换为实际数字。
A = 《9级》 ;
乙=编号(单词( 2 , A )) ;
回复:如何在公式字符上编写命令嗨朱利安,
我的“匹配”脚本或公式运行得很好,我非常喜欢它。
但是,我无法在公式或脚本上使用“Word”功能。
我的案例是一个现有的列,它是“1 类”到“9 类”的字符,我希望在它旁边有一个新列,只显示数字(1 到 9),并且仍然采用字符/属性格式。
因此,以您为我编写的Word()脚本为例,我们是否需要母列(Class1…Class 9)的输入信息并使用Word()函数?
谢谢,
伯尼
使用 Words() 只提取数字
//新建一个列
当前数据表() << 新列("ClassNumberOnly", Character);
//停止表更新,直到完成所有更改,适合大型表
当前数据表() << 开始数据更新;
//将更改应用到每一行
对于每一行(
:ClassNumberOnly = Word( 2, :Class )
);
// 结束“数据更新”
当前数据表() << 数据更新结束;
回复:如何在公式字符上编写命令嗨伯尼,
我很高兴我问了! 有几种方法可以解决此问题,具体取决于您是想编写公式列还是编写实际值。 不同的情况需要其中之一,因此我在下面提供了针对这两种情况的方法。
写入实际值:
| 使用 Word() 只提取数字 |
|---|
//新建一个列 当前数据表() <<新专栏( “仅班级编号” ,特点) ; //停止表更新,直到完成所有更改,适合大型表 当前数据表() <<开始数据更新; //将更改应用到每一行 对于每一行( :仅班级编号=单词( 2 , :班级) ) ; // 结束“数据更新” 当前数据表() <<结束数据更新; |
| 使用 Match() 进行重新编码 |
|---|
//新建一个列 当前数据表() <<新专栏( “属性重新编码” ,特点) ; //停止表更新,直到完成所有更改,适合大型表 当前数据表() <<开始数据更新; //将更改应用到每一行 对于每一行( :属性重新编码=匹配( :属性, “可口” , “宾3” , “甜的” , “宾2” , “酸的” , “宾1” , :属性 ) ) ; // 结束“数据更新” 当前数据表() <<结束数据更新; |
要编写公式列:
| 使用 Word() 只提取数字 |
|---|
//制作公式列 当前数据表() <<新专栏( “仅班级编号” ,特点, 公式( 单词( 2 , :班级) ) ) ;
|
| 使用 Match() 进行重新编码 |
|---|
//制作公式列 当前数据表() <<新专栏( “属性重新编码” ,特点, 公式( 匹配( :属性, “可口” , “宾3” , “甜的” , “宾2” , “酸的” , “宾1” , :属性 ) ) ) ;
|
希望这可以帮助!
朱利安
回复:如何在公式字符上编写命令嗨朱利安,
非常感谢您再次阅读我最初的帖子。 是的,如果有一个脚本选项那就更好了,因为我每天都使用它。
回复:如何在公式字符上编写命令不客气! 我刚刚再次阅读了您最初的帖子,我想到您可能一直在寻找脚本解决方案而不是列公式解决方案。 如果是这种情况,请告诉我,我可以帮助您通过脚本进行设置。 您可能已经注意到,在“Col”>“重新编码”中,甚至可以选择让 JMP 将重新编码编写为脚本,因此我将从这里开始,我们可以调整代码以使用 Word() 来解决您的第一个问题。
朱利安
回复:如何在公式字符上编写命令非常感谢朱利南提供的有用信息。
伯尼
回复:如何在公式字符上编写命令你好伯尼426 ,
要提取列的一部分,您可以使用 Word() 函数,该函数有两个参数:第一个是要提取的“单词”(您将在此处输入数字),第二个是包含您要从中提取的文本的列。 还有第三个可选参数,您可以在其中指定分隔单词的分隔符,但在您的情况下,默认的“空格”将起作用。 因此,要使用它,请使用 Word(2,:Class) 创建一个新的公式列(其中:Class 是存储原始数据的任何变量)。例如(也在所附数据集中):

这将采用第二个“单词”,它就是遇到的第一个空格之后的任何内容,因此只是数字。
对于你的第二个问题,我将使用 match 函数(如下)。 您可以自己编写,也可以使用列重新编码实用程序为您编写。 要执行后者,请选择原始列,然后转到“列”>“重新编码”。 指定您希望变量具有哪些新值,然后选择“公式列”而不是“就地”。JMP 将使用匹配功能为您创建一个新列。

对于第一个问题,您可以以相同的方式使用 Cols > Recode,但如果您有很多级别,则使用 Word() 会比手动指定重新编码更快。
我附上了包含这些公式的示例数据集。
我希望这有帮助!
朱利安