私たちは皆、次のような状況に遭遇します。Excel テーブルは見た目を良くするためにフォーマットされていますが、分析可能性については考慮されていません。
自由形式のテキスト セルでは、次のようになります。
m/d: テキスト [Alt+Enter]
m/d: テキスト [Alt+Enter]
m/d: テキスト [Alt+Enter]
m/d: テキスト [Alt+Enter]
...
m/d: テキスト [Alt+Enter]
データが JMP にエクスポートされると、セルは次のように折りたたまれます: m/d: テキスト m/d: テキスト m/d: テキスト ... m/d: テキスト。
n 個の要素を持つ長い文字列を、列に分割するのではなく、要素ごとに別々の行に解析したいのです。n は変数です。こうすると、他の列をコピーし、解析した要素を追加する新しいデータテーブルが作成されます。これは Text-to-Columns ではなく Text-to-More-Rows です。
ありがたいことに、#/# は一貫して使用されているため、それらをカウントして n 回ループすることができました。
同じようなことをした人はいますか?
私はこのようなことをたくさんしています。あなたはそれを通り抜ける必要があります。 列1に複数の値があり、列2が静的である例を次に示します。
dt = New Table( "Test", Add Rows( 3 ), Set Cell Height( 83 ),
New Column( "Column 1", Character, "Nominal",
Set Values(
{"5/3: ABCDE
5/4: DEF
5/5: GHI",
"5/6: xyz
5/7: foo
5/8: bar
5/9: Hello
5/10: World",
"4/16: The
4/17: Entire
4/18: Scheme
4/19: Of
4/20: Things
4/21: Is broken"} ),
Set Display Width( 156 )
),
New Column( "Column 2", Character, "Nominal", Set Values( {"A", "B", "C"} ) )
);
dtnew = new table("Text_to_Rows",
new column("Column 1", Character, "Nominal"),
new column("Column 2", Character, "Nominal"),
);
delim = "
";
m = 0;
for (i = 1, i <= nrows(dt), i++,
c1_words = words(dt:column 1[i], delim);
one_c2 = dt:column 2[i];
for (k = 1, k <= nitems(c1_words), k++,
dtnew << add rows(1);
m++;
dtnew:Column 1[m] = c1_words[k];
dtnew:Column 2[m] = one_c2;
);
);
ピーター:
ありがとう!これでうまくいきました。私はあなたにあなたが選んだ飲み物を借りています。
データの作成者がフラットフォーマットでデータを入力するように取り組んでいます...
はははいいですね。 Discovery 2020でお会いしましょう。