こんにちは、
このようにデータが分散しているExcelのデータシートを変換するのにいくつかの課題があります。スプレッドシートも添付しました。
これについて何か考えはありますか?同様の日付をExcelシートからJMPデータセットにすばやく変換するにはどうすればよいですか?
ありがとう

新しいJMPバージョン16を使用して、インタラクティブな手順を実行してデータを変更し、ログからJSLを切り取ってスクリプトに貼り付けました。次に、自分の好みのいくつかをコードに適用しましたが、それは必要ではなかったでしょう。
注:JMPで開く前に、Excelデータシートのデータラングラーからグラフィックスと最終結果の列も削除しました

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.値が欠落している列の1つを選択します。 右クリック->一致するセルの選択->行の削除

(3.5:列4を数値連続に修正)
4.テーブルメニューからスタックを選択します

5. Recodeを使用してT(type)列の値を変更し、余分な列を削除/非表示にします
6.必要に応じて値の順序列のプロパティを追加し、列で並べ替えます
