脚本:删除字符串前缀并将修改后的列输出到 Excel 文件大家好。 我一直在遵循以下建议字符串解析公式以及其他一些将数据写入文件的参考,主要适用于块文本文件,但我发现
Save Excel File()
脚本索引中的函数。 我不知道最后一个参数的含义/作用是什么? 没有解释。 也就是说,
Separate Rows for Each Cell Statistic( 1 )
这重要吗? 无论此参数是否存在,它都不会向我指定的位置中的任何文件写入任何内容。
这是我的脚本的粗略轮廓:
dt = Current Data Table();
c = Words(:ID, "_");
Write(c);
s = c[2] || "_" || c[3] || "_" || c[4] || "_" || c[5];
Write(s);
s << Save Excel File(
"$DOCUMENTS\temp.xlsx",
Separate Rows for Each Cell Statistic( 1 )
);
因此,我尝试删除前缀,并保留剩余的四个“单词块”及其下划线,我将通过字符串连接手动将其添加回来。 看字符串和变量连接用于字符串连接“||”参考。
无论如何,$DOCUMENTS\temp.xlsx 中没有显示任何文件。
另外,嗯,它叫什么,终端,窗口,日志,给了我错误
Subscript Range in access or evaluation of 'c[2]' , c[/*###*/2]
我不知道为什么。 我所包含的 Write() 语句不会输出任何字符串或列。
所以基本上没有什么可以正常工作。 我想,第一方!
让我知道你们都可以想到什么技巧。
干杯,
麦克风
质量和工艺工程回复:脚本:删除字符串前缀并将修改后的列输出到 Excel 文件将数据表指针添加到列函数中,确保它是有列的表。
列(dt,:id)
听起来可能有多个打开的表,并且 JMP 正在尝试使用当前表,但这不是您想要的表。
当你创建子集时,你可以获得新表的表指针:
dtSubset = dt<<子集(...);
回复:脚本:删除字符串前缀并将修改后的列输出到 Excel 文件这是一个很棒的框架;我现在发现的问题很简单:
我正在使用的表是完整表的行的子集。 当我转到 Column(:ID) 时,它找不到该列,即
could not find column{3} in access or evaluation of 'Column' , Column/*###*/(dt:ID)这看起来很简单,但我不知道为什么。 我认为这是因为我正在使用行的子集,我确实需要这样做,但我可以通过在基表上尝试脚本来找出情况是否如此。 一会儿...
不,这似乎也是完整数据表上的问题。
对于“找到”我的专栏有什么建议吗?
迈克尔
回复:脚本:删除字符串前缀并将修改后的列输出到 Excel 文件
另外,一般来说,如果您有一个接受参数或变量的函数,那么传入列是否会按元素对列执行该函数?
否。通常,如果您需要对数据表的每一行进行评估,您将需要在数据表中创建公式列或使用对于每一行()迭代器。
JMP 16 引入了对于每个()迭代 JSL 数据结构的函数:列表、关联数组或矩阵。
回复:脚本:删除字符串前缀并将修改后的列输出到 Excel 文件另外,一般来说,如果您有一个接受参数或变量的函数,那么传入列是否会按元素对列执行该函数?
麦克风
回复:脚本:删除字符串前缀并将修改后的列输出到 Excel 文件感谢您的回复, @蒂埃里_S ! 我目前正在尝试您的脚本以及其他一些东西。
对于大多数人来说,这听起来像是一个超级简单的事情,但我实际上不知道当涉及多个单值变量时,为了调试目的可视化输出的最佳方法是什么,即如何将单个列弹出到新数据表(仅使用 JSL),或将列打印到日志,或类似的操作。
我不记得了,也许我以前做过这个,只是一片空白,但我觉得问这个问题有点傻。
再次感谢!
麦克风
回复:脚本:删除字符串前缀并将修改后的列输出到 Excel 文件我认为保存 Excel 文件是分类响应分析平台的一个特例其他分类平台选项。 要将数据表保存为 Excel 文件,您只需使用 << Save(path)。
当前,您正尝试将一个字符串保存到 Excel 文件,该字符串是从数据表的第一行创建的。 根据您想要保存的方式和内容,您有不同的选项,下面是一个将 :ID 列值替换为新值(删除第一个 _ 之前的字符)的选项:
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(3),
Compress File When Saved(1),
New Column("ID", Character, "Nominal", Set Values({"1_2_3_4_5_6", "2_3_4_5_6_7", "3_4_5_6_7_8"}))
);
Wait(1);
dt:ID << Set Each Value(
Substr(:ID, Contains(:ID, "_")+1)
);
dt << Save("$DOCUMENTS\test.xlsx");您还可以使用新值创建新列,这很可能是更好的方法。
回复:脚本:删除字符串前缀并将修改后的列输出到 Excel 文件你好,
在处理字符串时,我倾向于使用特定于字符串的函数(例如 Substitute ()、Munger ()、Right ()、Word());
因此,对于您的情况,我建议使用以下公式来删除 IDS 字符串的第一部分,包括“_”字符的第一个实例:
Substitute( :IDS, Word( 1, :IDS, "_" ) || "_", "" )
最好的,
TS