指定された列内の指定された文字のすべてのインスタンスを検索して置換する方法これはとても単純な質問です。JMP テーブルに特定の列があり、その列内の指定された文字のすべてのインスタンスを検索して置換する JMP スクリプト コマンドが必要です。たとえば、GROUP という列があり、GROUP 内の特定の行に "A05 または "B17 のような値が含まれています。GROUP 内のすべての " 文字を置換して、エントリが "A05 と "B17 ではなく A05 と B17 になるようにしたいと考えています。これは、「テーブル」-「検索」-「検索」に移動して検索と置換を行うことで手動で簡単に実行できますが、これをスクリプト化する簡単な方法はありますか?
Re: 指定された列内の指定された文字のすべてのインスタンスを検索して置換する方法引用符を削除するには、行をループし、substitute 関数を使用します。
dt = New Table( "Test Quote Removal", Add Rows( 4 ),
New Column( "Group", Character, "Nominal",
Set Values( {"A05", "\!"A06", "\!"A07", "A08"} )
)
);
for (i = 1, i <= nrows(dt), i++,
dt:group[i] = substitute(dt:group[i], "\!"", "");
);Re: 指定された列内の指定された文字のすべてのインスタンスを検索して置換する方法これは、A05 の問題を処理する簡単な JSL です。
Names Default To Here( 1 );
dt = Current Data Table();
foundRows = dt:yourColumn << get rows where( Contains( :yourColumn, "A05" ) );
If( N Rows( foundRows ) > 0,
:yourColumn[foundRows] = "A05"
);
Re: 指定された列内の指定された文字のすべてのインスタンスを検索して置換する方法ご返信ありがとうございます。もしかしたら私が間違っているかもしれませんが、Recode を使用すると、既知の値全体を別の値に置き換えることができると思いました。しかし、私の場合、より具体的に言うと、GROUP の値は "A05、"B17、あるいは "***" のようなものになります。私が知っているのは、値が " 文字で始まり、その後に* 文字はワイルドカードであり、何でも構いません。実際に私がやりたいのは、値から " を削除することだけです。
Re: 指定された列内の指定された文字のすべてのインスタンスを検索して置換する方法Recode を使用すると、jmp テーブルで置換を行うことができます。 送信する前に、今後使用するスクリプトを取得できます。

dt = Current Data Table();
dt << Begin Data Update;
dt << Recode Column(
dt:GROUP,
{Map Value( _rcOrig, {"\!"A05", "A05", "\!"B17", "B17"}, Unmatched( _rcNow ) )},
Target Column( :GROUP )
);
dt << End Data Update;