可以从列表中重命名表中的所有列吗?你好。 我想知道是否有一种方法可以在不使用 For 循环的情况下从列表中重命名表中的所有列。 我有大约 10k 列的表,并且使用 For 循环花费的时间比我想要的要长得多。
细节:
JMP 专业版 16.2.0
Mac 操作系统 大苏尔 11.6.6
我研究了“重新编码列名称...”功能(“列”>“列名称”>“重新编码列名称...”)。 在出现的对话框中,我可以选择红色向下三角形,然后选择高级 > 应用表中的映射...。 假设我有一个包含原始列名和新列名的表,这看起来效果很好。 但是,似乎没有办法编写此脚本。
我还尝试过转置表,添加具有新列名称的新列,然后使用新列作为标签重新转置。 这也有效,但对于我这么大的桌子来说太慢了。
有谁知道另一种不使用 For 循环的聪明方法?
大规模定制回复:可以从列表中重命名表中的所有列吗?谢谢jthi。 是的,我必须承认,使用 For 循环比我记忆中要快得多。 我很久以前就尝试过,记得当时觉得速度太慢了。 在询问之前应该再试一次...
回复:可以从列表中重命名表中的所有列吗?我觉得用循环重命名列不应该花那么长时间。
Names Default To Here(1);
dt = New Table("test", invisible);
For(i = 1, i <= 10000, i++,
dt << New Column(Char(i*10), values(1::10000))
);
col_names = As List((1::10000)`);
wait(1);
start = HP Time();
For Each({col_name, idx}, col_names,
Column(dt, idx) << Set Name(char(col_name));
);
Show((HP Time() - start) / 1e6);回复:可以从列表中重命名表中的所有列吗?执行此操作的一种交互式方法是将所有新列名称复制到粘贴缓冲区中。

然后从数据表的列面板中选择所有列。我建议你使用 CNTL/a 来选择它们

然后使用 CNTL/v 从粘贴缓冲区粘贴到列名
