スクリプト:文字列のプレフィックスを削除し、変更された列をExcelファイルに出力します皆さんこんにちは。 私はでアドバイスに従ってきましたhttps://community.jmp.com/t5/Discussions/String-parsing-formula/td-p/51077およびファイルにデータを書き込むための他のいくつかの参照。主にチャンクテキストファイルに適用できますが、
Save Excel File()
スクリプトインデックスの機能。 最後のパラメータが何を意味するのか/何をするのかわかりませんか? 説明されていません。 つまり、
Separate Rows for Each Cell Statistic( 1 )
これは重要ですか? このパラメーターが存在するかどうかに関係なく、指定した場所のファイルには何も書き込まれません。
これが私のスクリプトの大まかな概要です:
dt = Current Data Table();
c = Words(:ID, "_");
Write(c);
s = c[2] || "_" || c[3] || "_" || c[4] || "_" || c[5];
Write(s);
s << Save Excel File(
"$DOCUMENTS\temp.xlsx",
Separate Rows for Each Cell Statistic( 1 )
);
そのため、プレフィックスを削除し、残りの4つの「単語ブロック」とそのアンダースコアを保持しようとしています。これらは文字列の連結によって手動で追加し直しています。 見るhttps://community.jmp.com/t5/Discussions/string-and-variable-concatenation/td-p/56308文字列連結の場合 "||"参照。
とにかく、$ DOCUMENTS \ temp.xlsxにファイルは表示されません。
また、ええと、それが何と呼ばれているのか、ターミナル、ウィンドウ、ログは私にエラーを与えています
Subscript Range in access or evaluation of 'c[2]' , c[/*###*/2]
理由はわかりません。 私が含めたWrite()ステートメントの結果として、文字列または列は出力されません。
したがって、基本的には何も機能していません。 四角いものだと思います!
皆さんが考えられるヒントを教えてください。
乾杯、
マイク
データ表スクリプティングRe:スクリプト:文字列のプレフィックスを削除し、変更された列をExcelファイルに出力しますこんにちは、
文字列を扱うとき、私は文字列固有の関数(Substitute()、Munger()、Right()、Word()など)を使用することを好む傾向があります。
したがって、あなたの場合、「_」文字の最初のインスタンスを含むIDS文字列の最初の部分を削除する次の式をお勧めします。
Substitute( :IDS, Word( 1, :IDS, "_" ) || "_", "" )
ベスト、
TS
Re:スクリプト:文字列のプレフィックスを削除し、変更された列をExcelファイルに出力しますSaveExcelファイルはCategoricalResponse AnalysisPlatformの特殊なケースだと思います追加のカテゴリプラットフォームオプション。 データテーブルをExcelファイルとして保存するには、<< Save(path)を使用します。
現在、データテーブルの最初の行から作成された文字列をExcelファイルに保存しようとしています。 保存する方法と内容に応じて、さまざまなオプションがあります。以下は、:ID列の値が、最初の_が削除される前の文字で新しい値に置き換えられるオプションです。
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(3),
Compress File When Saved(1),
New Column("ID", Character, "Nominal", Set Values({"1_2_3_4_5_6", "2_3_4_5_6_7", "3_4_5_6_7_8"}))
);
Wait(1);
dt:ID << Set Each Value(
Substr(:ID, Contains(:ID, "_")+1)
);
dt << Save("$DOCUMENTS\test.xlsx");また、新しい値を使用して新しい列を作成することもできます。これは、おそらくより適切なアプローチです。
Re:スクリプト:文字列のプレフィックスを削除し、変更された列をExcelファイルに出力します返信ありがとうございます、 @Thierry_S ! 私は現在、あなたのスクリプトレットと他のいくつかのことを試しています。
これはほとんどの人にとって非常に単純なことのように聞こえるかもしれませんが、単一の値の変数以上のものが含まれている場合、デバッグ目的で出力を視覚化するための最良の方法、つまり単一の列をにポップアウトする方法は実際にはわかりません新しいデータテーブル(JSLのみを使用)、または列をログに出力するなど。
覚えていないのですが、これは以前にやったことがあり、空白を描いているだけなのかもしれませんが、質問するのはちょっとばかげています。
再度、感謝します!
マイク
Re:スクリプト:文字列のプレフィックスを削除し、変更された列をExcelファイルに出力しますまた、一般に、パラメーターまたは変数を受け入れる関数がある場合、列を渡すと、その関数は要素ごとに列に実行されますか?
マイク
Re:スクリプト:文字列のプレフィックスを削除し、変更された列をExcelファイルに出力します
また、一般に、パラメーターまたは変数を受け入れる関数がある場合、列を渡すと、その関数は要素ごとに列に実行されますか?
いいえ。通常、データテーブルの各行に対して評価されるものが必要な場合は、データテーブルに数式列を作成するか、各行()についてイテレータ。
JMP16は各()についてJSLデータ構造を反復処理する関数:リスト、連想配列、または行列。