重命名列我正在创建一个脚本,用于导入一个 .txt 文件并进行一些操作。我希望列名由第 1 行和第 2 行连接而成。换句话说,第 1 行包含“长度”和“宽度”等数据,第 2 行包含“米”和“厘米”等数据,第 3 行到第 x 行包含数值。因此,我希望将“长度”和“米”连接起来,并将其作为第一列的列名,所有数据值都从新的第 1 行开始。
关于如何开始的任何指示或一些可能有帮助的建议?
谢谢。回复:重命名列无论如何,我避免使用 j 作为循环变量,因为它是一个 JSL 矩阵函数!
J(n行, , )
功能:创建一个相同值的矩阵。
返回:矩阵。
参数:
nrows 矩阵的行数。如果未指定 ncols,则 nrows 也用作 ncols。
ncols 矩阵中的列数。
value 用于填充矩阵的值。如果未指定值,则使用 1。
j 将作为变量,但我倾向于使用 i、k、m、n 等。回复:重命名列成功了!非常感谢!回复:重命名列它对我来说有效,但我尝试的另一个文件却重现了同样的错误。我修改了上面的脚本:使用 char() 是为了避免 concat 函数对数字列名失败。我还把计数器 i 改成了 j,因为论坛有时拒绝在方括号内显示 i(至少我的浏览器没有显示名称)。适当地)。
现在应该完成了。至少它能像我预期的那样处理一系列文本文件(JMP9 for Mac)。回复:重命名列非常感谢。我觉得答案很接近了,而且我理解你在做什么。但是,当我尝试实现它时,出现了这个错误:
::names = {};
For( ::i = 1, ::i <= N Col( ::dt ), ::i++,
Insert Into(
::names,
Column( ::i ) << get name || /*###*/" " || /*###*/Column( ::i )[1] /*###*/
有什么想法吗?我基本上照搬了你的脚本,只是修改了一些导入偏好设置。除此之外,其他都一样。
回复:重命名列编写脚本的方法可能有很多种。以下是一个使用不同导入文本选项的示例。此处假设文件以制表符分隔。
编写脚本的方法可能有很多种。以下是一个使用不同导入文本选项的示例。此处假设文件以制表符分隔。
[前言]
//仅打开前两行
dt = 打开(
“路径/文件.txt”,
导入设置(
字段结束(制表符),
标签( 1 ),
列名开始( 1 ),
数据开始( 2 ),
待读行( 1 ),
)
(此处似有缺失,请提供更正后的文本)。
// 创建新列名的列表
名称 = {};
对于(j = 1,j <= N Col(dt),j ++,
插入到(名称,列(j)<<获取名称()||“”|| Char(列(j)[1]))
(此处似有缺失,请提供更正后的文本)。
关闭(dt,nosave);
//再次打开,包含第 3 行的所有数据
dt = 打开(
“路径/文件.txt”,
导入设置(
行尾( CRLF, CR, LF ),
字段结束(制表符),
列名开始( 1 ),
数据启动( 3 ),
)
(此处似有缺失,请提供更正后的文本)。
//设置列名
对于(j = 1,j <= N Col(dt),j ++,
列(j)<<设置名称(names[j]))
[/PRE]