一次从表中选择所有列我有多个表,其中包含从 csv 文件导入的数据。不幸的是,并非所有桌子的长度都相同,并且长度每天都在变化。但是 id 仍然希望能够将所有列转换为数据类型字符,jmp 脚本中是否有任何命令允许我执行此操作而无需指定各个列(因为我不知道总共有多少列)回复:从表中一次选择所有列您可以使用一个简短的脚本列出所有列名,然后迭代地为每一列分配一个属性。回复:如何一次性选择表中的所有列谢谢你的回复
请问您有可以实现此功能的示例代码吗?
我本质上是想把所有列都转换为“字符”类型。
目前我最接近的方法是使用这段代码。
_________________________________
dt=DataTable("Log60");
cc=dt< ncols = N 项(cc);
这将返回值为“数值型”的列的名称。
_________________________________
脚本编写指南接着指出,要使用这种类型的循环来选择上面代码中列出的所有列。
________________________
for(i=1,i<=ncols,i++,
cc(i)< ________________________
但是这个对我不起作用——它提示行号无效 -1回复:如何一次性选择表中的所有列对我来说,使用“cc[i]”而不是“cc(i)”就可以了。你是否有名为 cc 或 i 的列,这可能会导致变量冲突?试试 cc[i]<
编辑:论坛软件似乎使用方括号进行样式设置,所以消息格式出错了。我尝试用空格代替。
消息由 xan@jmp 编辑回复:如何一次性选择表中的所有列以下示例脚本会将当前数据表中所有列的数据类型转换为字符型。这只是比本帖前面提到的方法更简洁的一种方式。
为了遍历数据表,您无需在执行 `for()` 循环之前知道数据表中有多少列,也无需知道列名。`NCol()` 函数返回数据表中的列数。`Column()` 函数允许您通过索引引用列。
dt = Current Data Table();
For( i = 1, i <= N Col( dt ), i++,
Column( dt, i ) << Data Type( "Character" )
);
希望对您有所帮助。
回复:如何一次性选择表中的所有列不妨试试。
dt=current data table();
::cc = ::dt << Get Column Names( Continuous );
::ncols = N Items( ::cc );
For( ::i = 1, ::i <= ::ncols, ::i++,
::name = ::cc[::i];
::cc[::i] << Data Type( Character );
Current Data Table() << Run Formulas;
);