你好,
我在转换excel数据表时遇到了一些挑战,在这种数据表中,数据的分布是这样的。我也附上了电子表格。
有什么想法吗?如何快速将类似的日期从Excel工作表转换为JMP数据集?
谢谢

使用新的JMP版本16,我只是简单地完成了交互步骤以修改数据,然后将JSL从日志中剪切并粘贴到我的脚本中。然后,我将自己的一些首选项应用于代码,但这不是必需的。
注意:在JMP中将其打开之前,我还从Excel数据表Data wrangler中删除了图形和最终结果列。

names default to here(1);
dt = Open(
"<PATH to="">/Data wrangling .xlsx",
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
// Delete selected rows
dt << Select Where(
:Column 1 == "" & Is Missing( :Column 2 ) & Is Missing( :Column 3 ) & :Column 4
== "" & Is Missing( :Column 5 ) & Is Missing( :Column 6 ) &
Is Missing( :Column 7 )
) << Delete Rows;
// New column: Column 8
dt << New Column( "Group",
character,
formula(If( Is Missing( :Column 1 ) & Is Missing( :Column 2 ) & Is Missing( :Column 3 ),
:Column 4
))
);
// Delete column formula: Group
dt:Group << Delete Formula;
For(i=1,i<=nrows(dt),i++,
if(:group[i]=="",:group[i]=:group[i-1])
);
// Delete selected rows
dt << Select Where(
:Column 1 == "" & Is Missing( :Column 2 ) & Is Missing( :Column 3 ) &
Is Missing( :Column 5 ) & Is Missing( :Column 6 ) & Is Missing( :Column 7 )
) << Delete Rows;
// Change column info: Column 4
dt:Column 4 << Data Type( Numeric ) <<
Set Modeling Type( "Continuous" ) << Set Field Width( 12 );
// Transpose data table
// → Data Table( "Transpose of Sheet1" )
dtTrans = dt << Transpose(
columns( :Column 2, :Column 3, :Column 4, :Column 5, :Column 6, :Column 7 ),
By( :Column 1, :Group ),
Output Table( "Transpose of Sheet1" )
);
// Change column name: Column 1 → T(Type)
dtTrans:Column 1 << Set Name( "T(Type)" );
// Delete column: Label
dtTrans << Delete Columns( :Label );
// Change column name: Row 1 → Response
dtTrans:Row 1 << Set Name( "Response" );
// New column: Column 4
dtTrans << New Column( "SI. No.",
Numeric,
"Continuous",
Formula( Row() ),
Format( "Best", 12 )
);
// Delete column formula: SI. No.
Data Table( "Transpose of Sheet1" ):SI. No. << Delete Formula;
// Move selected columns
Data Table( "Transpose of Sheet1" ) <<
Move Selected Columns( {:"T(Type)"n, :Group, :Response}, after( :SI. No. ) );</PATH>由于不需要脚本或自动化过程,因此可以手动进行操作(最可能的是JMP16增强日志也可以轻松实现此目的,最难的部分很可能是将组名从行到列,使用公式应该相当简单):
1.打开.xslx文件作为没有表头的数据表

2.创建名为Group的新列,并相应地复制粘贴组名

3.选择缺少值的列之一。 右键单击->选择匹配的单元格->删除行

(3.5:将第4列固定为数字连续)
4.从表格菜单中选择堆栈

5.使用Recode更改T(type)列中的值,删除/隐藏多余的列
6.如果需要,添加“价值订单”列属性,并按列排序
