脚本:删除字符串前缀并将修改后的列输出到 Excel 文件大家好。 我一直在遵循以下建议https://community.jmp.com/t5/Discussions/String-parsing-formula/td-p/51077以及其他一些将数据写入文件的参考资料,主要适用于块文本文件,但我发现
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 )
);
所以我试图删除前缀,并保留剩下的四个“单词块”加上它们的下划线,我通过字符串连接手动添加回来。 看https://community.jmp.com/t5/Discussions/string-and-variable-concatenation/td-p/56308用于字符串连接“||”参考。
无论如何,$DOCUMENTS\temp.xlsx 中没有显示任何文件。
另外,嗯,它叫什么,终端,窗口,日志,给了我错误
Subscript Range in access or evaluation of 'c[2]' , c[/*###*/2]
我不知道为什么。 我所包含的 Write() 语句不会输出任何字符串或列。
所以基本上没有什么是正常的。 广场一,我想!
让我知道你们都可以想到什么技巧。
干杯,
麦克风
数据表脚本编写回复:脚本:删除字符串的前缀并将修改后的列输出到 Excel 文件你好,
在处理字符串时,我倾向于使用特定于字符串的函数(例如 Substitute ()、Munger ()、Right ()、Word());
因此,在您的情况下,我建议使用以下公式删除 IDS 字符串的第一部分,包括“_”字符的第一个实例:
Substitute( :IDS, Word( 1, :IDS, "_" ) || "_", "" )
最好的,
TS
回复:脚本:删除字符串的前缀并将修改后的列输出到 Excel 文件我认为 Save Excel file 是 Categorical Response Analysis Platform 的特例其他分类平台选项. 要将数据表保存为 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 文件谢谢回复, @Thierry_S ! 我目前正在尝试您的 scriptlet 以及其他一些东西。
对于大多数人来说,这听起来可能是一件非常简单的事情,但我实际上不知道当涉及的不仅仅是单值变量时,出于调试目的可视化输出的最佳方法是什么,即如何将单列弹出到新数据表(仅使用 JSL),或将列打印到日志,或类似的东西。
我不记得了,也许我以前做过这个,只是画了一个空白,但我觉得问这个问题有点傻。
再次感谢!
麦克风
回复:脚本:删除字符串的前缀并将修改后的列输出到 Excel 文件另外,一般来说,如果您有一个接受参数或变量的函数,那么传入一列是否会按元素对列执行该函数?
麦克风
回复:脚本:删除字符串的前缀并将修改后的列输出到 Excel 文件
另外,一般来说,如果您有一个接受参数或变量的函数,那么传入一列是否会按元素对列执行该函数?
不。通常,如果您需要对数据表的每一行进行评估,您将需要在数据表中创建公式列或使用对于每一行()迭代器。
JMP 16 引入了对于每个()迭代 JSL 数据结构的函数:列表、关联数组或矩阵。