我正在对不同的表进行多次分析。 每个表都有一个诊断栏,有超过 900 种不同的诊断类型。 所以我所做的就是重新编码列,然后将每个诊断重新分类为 40 个“诊断类别”。 然而,这是一个重复对每个表的诊断列进行重新编码的繁琐过程。
需要帮助创建一个重新编码脚本,该脚本捕获将 900 个诊断分组为 40 个集群的逻辑,然后将相同的重新编码过程应用于不同表中的类似列。 有没有办法保存重新编码脚本并将其应用到新列?
谢谢...
我正在使用 JMP V14.2。
我能够保存重新编码列的脚本。 将尝试使用另一个表运行该脚本,看看是否有效。
谢谢
莫卡博士
从您的帖子中尚不清楚您是通过聚类分析创建 40 个分类,还是通过诊断名称并使用 Recode 手动执行此操作。
另外,您没有提及您正在使用哪个版本的 JMP。 如果您已重新编码一张表的 900 到 40 个类别,则根据您的 JMP 版本,您可能可以选择脚本 > 保存到文件。 以下是使用 JMP PRO v 14.2 的选项的屏幕截图。 附上保存脚本。您可以在打开每个文件后运行此脚本,并且将自动创建重新编码列(在我的脚本中称为原始 2)。但是,如果您有非常大的文件,我不确定性能。 (下面有更多讨论)。

看起来工作得很快的是关联数组,它是一个键控列表。
附2张桌子,
- Firsttbl_recodebyhand.jmp
- 新表.jmp
打开 firtstbl_recodebyhand.jmp。 它需要具有原始列和重新编码的列,然后运行此脚本,更改名称以匹配您手动重新编码的表列,然后运行此脚本
dt = current data table();
ng_aa = Associative Array(:original, :original2);
aa_str = "ng_aa =" || Log Capture(write(ng_aa)) ||";";
save text file("c:\temp\myrecode.txt", aa_str);
接下来打开newtbl.jmp。 请注意,还有更多行,并且按随机顺序排列。 现在运行这个脚本
names default to here(1);
dt = current data table(); //open newtbl
_cmd_str = LoadTextFile("c:\temp\myrecode.txt");
Eval(Parse(_cmd_str));
dt << new Column("original 2", character, <<SET each="" value=""></SET>
关联数组充当查找函数。关联数组可能适用于所有版本的 JMP。
到目前为止,本讨论假设您有一个手工重新编码的专栏。如果您使用过其他方法,例如 k 均值聚类分析或其他算法方法,JMP 可能有“保存公式”选项,您只需在每次打开新文件时复制并粘贴该公式即可。
如果没有更多细节,我没有什么可提供的。