如何将一列中的文本拆分为多列?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />有时,我有一列中包含信息的数据集,我希望将其拆分为多列。 例如,在下面的图像 1 中,我将四个标识符混为一列,我希望将其拆分为四列。 我希望将批号 (11) 文本标识符 (DAT) 样本号(001,002 等)和文件类型 (.tif) 全部拆分为单独的列(如图 2 所示)。 在公式编辑器或使用 JSL 中执行此操作的最佳方法是什么? 我附上了一个示例数据文件。
我拥有的:
图1

我想要拥有什么:
图2

回复:如何将一列中的文本拆分为多列?您能否提供一些示例数据,其中包含拆分和堆叠的前后查找?
回复:如何将一列中的文本拆分为多列?嗨杰夫,
JMP 中的“拆分”和“堆栈”功能非常好。 我想您不知道 SQL 的等效项或在 SQL 中执行此操作的方法吗? 如果这不是你给出的建议,那也没关系。 省得我去查看 SQL 板。
回复:如何将一列中的文本拆分为多列?查看“文本到列”函数和 Word() 函数来完成您所询问的问题
回复:如何将一列中的文本拆分为多列?你好,
只是致力于将测试扩展到列功能。 我在名为 item code 的列中有一个字符串 ACE_100_bb_29_icfg2 。 有没有办法用 _ 分隔此文本,然后在列项目代码中只包含前 3 个字符(ABC)。
我现在这样做的方式是 - 删除此函数生成的所有其他列(项目代码 1 ,2 等),并使用 ABC 重命名该列作为项目代码。 想知道是否有有效的方法来做到这一点。
谢谢
回复:如何将一列中的文本拆分为多列?吉姆回答了你的问题,但你不需要脚本。
- 选择所有要更改的列。
- 选择科尔斯>标准化属性。
- 点击属性并选择数据类型。
- 点击属性并选择造型类型。
- 按照您想要的方式更改这两个属性。
- 点击好的。
脚本编写很棒,但 JMP 针对交互进行了优化。
回复:如何将一列中的文本拆分为多列?用于设置所有列的数据类型和建模类型的紧凑代码将是
dt = current data table();
for( i = 1, i <= NCols( dt ), i++,
column( dt, i ) << data type( "numeric" ) << modeling type( "continuous" );
);
关于转置,您应该能够使用 Stack Platform 获得您想要的东西
表==>堆栈
回复:如何将一列中的文本拆分为多列?再次嗨,非常感谢。 它有效并且我的数据被分割。 现在有 138 个列,名称为 SPDATA 1 - SPDATA 138。
我知道这有点超出主题主题,也许我应该能够做到这一点,但是:
如何在紧凑的 JSL 语句中将所有列属性设置为数字和连续?
其次,我如何创建一个转换后的数据表,其中频谱数据是一列,根据一些可用的分类数据(所有 138 个数据点具有相同值的日期时间值),具有 138 行的倍数。
此致 波尔 RS
回复:如何将一列中的文本拆分为多列?这是插件文档中的示例。确保您已安装插件的版本 3,然后运行此示例。
bc_party = Open( "$SAMPLE_DATA\Consumer Preferences.jmp" );
com.jmp.jperk:texttocolumns( Column( bc_party , "floss delimited"), ",", bc_party );
如果它有效,那么您可以使用此代码将其合并到 JSL 中
回复:如何将一列中的文本拆分为多列?您好,我正在运行 JMP 13 并安装了“文本到列”插件,并且可以从菜单中使用它。
现在,我有一个数据表字符列,它表示来自分光光度计的光谱数据。 总共有 138 个子串,以逗号分隔。 我想使用插件在 JSL 中进行编码,生成 138 个数字列,每个列中有一个值。 (由于数据来自二极管阵列,波长分离是恒定的,所以我的数据中没有它,因此不需要转换它..)
我已经阅读了一些有关如何执行此操作的示例,但我无法获得正确的语法。
如果您能提供一点帮助,我们将不胜感激:使用插件从特定列生成 138 列的语法是什么?
提前致谢
波尔·RS
回复:如何将一列中的文本拆分为多列?谢谢伊恩。 我使用的是 JMP 13.1.0,该页面是空白的。
回到最近的问题,这里是如何在 JSL 中调用文本到列:
dt = New Table( "Text2Col Example", Add Rows( 4 ),
New Column( "Col1", Character, "Nominal",
Set Values(
{"11 DAT 001.tif", "11 DAT 002.tif", "11 DAT 003.tif", "11 DAT 004.tif"}
)
),
New Column( "Col2", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [159.4308, 229.5031, 164.3414, 162.0241] )
)
);
dt << text to columns(delimiter(" "), columns(:Col1));回复:如何将一列中的文本拆分为多列?在我的 13.1 版本中,我看到:


回复:如何将一列中的文本拆分为多列?的文档col << 文本到列是脚本索引中的空存根。 我尝试了各种组合,但无法使其发挥作用。 JMP 的人可以告诉我们正确的语法吗?
回复:如何将一列中的文本拆分为多列?我最近发布了文本到列,版本 3它添加了对从 JSL 调用 Text to Columns 的支持。
回复:如何将一列中的文本拆分为多列?Names Default To Here( 1 );
dt = New Table( "sample",
New Column( "column 0", character, values( {"11 DAT001.tif", "11 DAT002.tif", "11 DAT003.tif", "11 DAT004.tif"} ) )
);
// Pause so you can see it working
Wait( 2 );
// add some as an example of the elements using a formula
dt << New Column( "Column 1", formula( Num( Word( 1, :column 0 ) ) ) );
dt << New Column( "Column 2", character, formula( Substr( Word( 2, :column 0 ), 1, 3 ) ) );
dt << New Column( "Column 3", character, formula( Substr( Word( 2, :column 0 ), 6, 1 ) ) );
// Now do the last one, using JSL code
dt << New Column( "Column 4", character );
For( i = 1, i <= N Rows( dt ), i++,
:Column 4[i] = Word( -1, :Column 0[i],".");
);回复:如何将一列中的文本拆分为多列?这如何用代码/JSL 编写?
回复:如何将一列中的文本拆分为多列?完美,这正是我正在寻找的,谢谢杰夫。
回复:如何将一列中的文本拆分为多列?如果您使用的是 JMP 12 或更高版本,您可以使用列 -> 实用工具 -> 文本到列。

如果您使用的是 JMP 11 或更早版本,则可以获得该插件,文本到列,版本 2 ,它与 now 内置函数执行相同的操作。
如果您想使用 JSL 或公式编辑器手动执行此操作,您会发现单词()功能方便。 相信我。
