重命名列大家好,
在我的代码中,我打开了一个 csv 文件,并将列重命名为“Column 1”。在数据表中,它被重命名,但是当我搜索所有不同的列时,找不到“列 1”。 它仅在打开时识别其原始名称。我正在数据表中搜索值,并且我需要知道它在哪一列(如果我将 i 设置为 2,它会起作用)。我知道将 i 设置为 2 将适用于此应用程序,但总的来说,我认为最好知道为什么会发生这种情况。
colFunction = Function({search_string},
found =0;
i=1;
Show(search_string);
Show(nCols);
While (found == 0,
match_rows = dt << get rows where(as column(dt, nCols)==search_string);
if(nrows(match_rows) > 0, found = 1, i++);
if(i==nCols, found =1, );
);
col = Num(i);
);
file = Pick File();
dt = Open (file);
for(i=1, i<=ncols(dt), i++,
column(dt,i) << data type(Character);
column(dt,i) << set modeling type(continuous);
);
nCols = dt << Get Column Names ("Character");
col = Column (1);
col << set name("Column 1");
irglCol = colFunction("Irgl");
回复:重命名列太棒了……就像一个魅力。
多谢。
回复:重命名列@txnelson向您展示了脚本解决方案,但这也很容易以交互方式处理。
您可以从数据表左侧的列表中复制列名,然后将它们粘贴到新数据表的列中。 现在您可以访问公式编辑器的所有功能来操作它们。
然后从新列中复制它们并将它们粘贴回原始表中。
这是一个展示该技术的小视频。
回复:重命名列这是一个简单的脚本,可以满足您的需要
Names Default To Here( 1 );
dt = Current Data Table();
ColList = dt << get column names( string );
For( i = 1, i <= N Items( ColList ), i++,
If( Substr( ColList[i], 1, 1 ) == "0",
Column( dt, i ) << set name( Substr( ColList[i], 2 ) )
)
);
回复:重命名列大家好,
我有一个类似的问题,但不完全相同:我有一个包含 100 列的 JMP 表,其中大多数列名以数字 0 开头,这使得搜索/搜索特定列变得困难。有没有办法可以通过 JMP 脚本删除每列开头的数字 0。
如果是一列或两列,我可以手动完成,但这些是 100 列...我知道如何一次更改一列的名称,但在这种情况下,我认为我需要以某种方式使用循环或其他东西...
请让我知道是否有一些方法可以实现。
感谢所有帮助。
谢谢。
回复:重命名列获取列名仅获取列名列表
获取列引用以字符串形式获取名称
所以也许还有其他一些想法。
打开(); //不必选择文件,它会自动打开图片文件对话框
获取列列表,找到模式的位置,然后使用参考处的位置更改列名称
list=dt<< get column reference(); //gets strings not a list of columns
position=contains(list, column("Carline")); //finds the position of something in a list
column(position)<<SETNAME></SETNAME>
或者我猜你可能会变得非常疯狂并在列表中替换并用列表重命名所有列
newlist=substitute(list, string, "Column 1");
dt<<SET column="" names=""></SET>