早上好,
在 JMP 中是否可以从标识符将多个列连接到单行中,换句话说:从第一个表转到第二个表?
谢谢
| 姓名 | 名 | 项目 1 | 第 2 项 | 第 3 项 | 第 4 项 | | | | | | | | |
| 弗热格夫泽 | 他做到了 | A | 12 | 224 | a | | | | | | | | |
| 他做到了 | 他做到了 | B | 3 | 5 | b | | | | | | | | |
| 他做到了 | 他做到了 | C | 4 | 67 | c | | | | | | | | |
| GRZGR | 西昌 | D | 5 | 5 | d | | | | | | | | |
| 广泽 | 外层空间自由区 | E | 2 | 31 | e | | | | | | | | |
| 广泽 | 外层空间自由区 | F | 7 | 2 | f | | | | | | | | |
| 广泽 | 量子点 | G | 8 | 0 | g | | | | | | | | |
| | | | | | | | | | | | | | |
| 姓名 | 名 | 项目 1-1 | 项目 2-1 | 项目 3-1 | 项目 4-1 | 项目 1-2 | 项目 2-2 | 项目 3-2 | 项目 4-2 | 项目 1-3 | 项目 2-3 | 项目 3-3 | 项目 4-3 |
| 弗热格夫泽 | 他做到了 | A | 12 | 224 | a | | | | | | | | |
| 他做到了 | 他做到了 | B | 3 | 5 | b | C | 4 | 67 | c | | | | |
| GRZGR | 西昌 | D | 5 | 5 | d | | | | | | | | |
| 广泽 | 外层空间自由区 | E | 2 | 31 | e | F | 7 | 2 | f | G | 8 | 0 | g |
| 广泽 | 量子点 | G | 8 | 0 | g | | | | | | | | |
在第二个表中,“G”出现了两次。有GFEZ 和QD吗?
您可以堆叠然后拆分数据。
要堆叠列,它们必须具有相同的格式。因此,可能需要一些额外的步骤来对齐格式并将它们设置回原始格式。
dt = New Table( "demo",
Add Rows( 7 ),
Compress File When Saved( 1 ),
New Column( "NAME",
Character,
Set Values( {"frzegfze", "he did", "he did", "GRZGR", "GZE", "GZE", "GZE"} )
),
New Column( "First name",
Character,
Set Values( {"he did", "he did", "he did", "xcsq", "GFEZ", "GFEZ", "QD"} )
),
New Column( "item 1",
Character,
Set Values( {"A", "B", "C", "D", "E", "F", "G"} )
),
New Column( "item 2",
Character,
Set Values( {"12", "3", "4", "5", "2", "7", "8"} )
),
New Column( "item 3",
Character,
Set Values( {"224", "5", "67", "5", "31", "2", "0"} )
),
New Column( "item 4",
Character,
Set Values( {"a", "b", "c", "d", "e", "f", "g"} )
)
);
dt << New Column( "entry",
Formula( Col Rank( Row(), :NAME, :First name ) ),
);
dtstacked = dt << Stack(
columns( :item 1, :item 2, :item 3, :item 4 )
);
dtsplit = dtstacked <<
Split(
Split By( :entry, :Label ),
Split( :Data ),
Group( :NAME, :First name )
);