堆叠多列,并向新列添加重复值大家好
我有一组原始数据,第一行作为样本/位置,下一行显示与特定迭代相对应的值。

我想更改这些数据,堆叠值并创建分别显示样本/位置的新列。
这就是我想要的:对每个值重复迭代/采样/位置。

或者,如果分离样本/位置很困难,我想要这个:

我尝试从 UI 中找到一种使用汇总表的方法,但似乎没有任何效果。
附加 Excel 数据文件。
自动化和脚本基础数据分析与建模数据混合和清理数据探索与可视化视窗回复:堆叠多列,并向新列添加重复值堆叠数据

使用“第一个单词”(和“最后一个单词”)快速公式并稍加修改即可创建新列

修改 Last Word 以使用“-”代替默认值“ ”

您还可以添加修剪空格来稍微清理最后一个单词
Trim Whitespace(Word(-1, :Label, "-"))

这是您要找的吗?(另外,为了将来,我建议您以 JMP 表的形式共享您的数据,以避免 Excel 文件可能产生的各种问题)
回复:堆叠多列,并向新列添加重复值要修改数据,您还可以查看 Recode 平台( 使用 JMP > 输入和编辑数据 > 重构数据 > 在列中重新编码数据)。在某些情况下,您也可以直接使用“文本分列”

当然,如果需要,您可以将其与 Recode 结合使用。JMP 还可以为您编写整个流程的脚本,无论是作为工作流还是作为增强日志中的脚本
回复:堆叠多列,并向新列添加重复值准备一些数据:
//prepare:
Names Default to Here(1);
dt0 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt = dt0 << Split(
Split By( :age, :sex ),
Split( :height ),
Remaining Columns( Drop All )
);
dt << new column ("sample", set each value(row()));
现在,让我们来堆叠它:

- use Eliminate missing rows( 1 ) to get rid of empty entries
- 使用文本到列来拆分2个分组变量:

如果你更喜欢 JSL:
// create stacked table
stacked = dt <<
Stack(
columns(
:"12 F"n, :"12 M"n, :"13 F"n, :"13 M"n, :"14 F"n, :"14 M"n, :"15 F"n,
:"15 M"n, :"16 F"n, :"16 M"n, :"17 F"n, :"17 M"n
),
Stack By Row( 0 ),
Eliminate missing rows( 1 )
);
stacked << Text to Columns( columns( :Label ), Delimiters( " " ) );