可変長の文字列の末尾を削除するこんにちは皆さん、
列:Protocol があり、これには文字、公称形式の可変長の文字列が含まれます。 以下にいくつかの例を追加しました。 列から文字列の最後の 4 文字を削除し、それ以外はすべて保持しようとしています。 最後の 4 文字は常に、-001、-002、-003、または -004 のいずれかになります。 Word() と Substr() を使用してこれを達成しようとしましたが、機能させることができません。
プロトコル
AAA-BB-1234-19 -001
AAAA-B-18 -002
AA-BBB-123-18- 003
AA-B-CC-1001-19- 002
これらの 4 行の列は次のようになります。
プロトコル
AAA-BB-1234-19
AAAA-B-18
AA-BBB-123-18
AA-B-CC-1001-19
次のように Word() 関数を使用してこれを実現しようとしました。
For Each Row(
:Protocol = Word(1, :Protocol, "00")
);
高度な統計モデリング消費者および市場調査マスカスタマイゼーションRe: 可変長文字列の末尾を削除するありがとう、あなたの解決策を試してみましたが、完璧に機能しました。Re: 可変長文字列の末尾を削除するLeft()関数を使うことも考えました。 私の見解は次のとおりです。
Names Default to Here( 1 );
string = "AAA-BB-1234-19-001";
Left( string, Contains( string, "00") - 2 );
[ヘルプ] > [スクリプト インデックス] を選択し、[関数] > [文字] を選択することをお勧めします。 文字列を操作するためのサポートが多数組み込まれています。
Re: 可変長文字列の末尾を削除する同意する@David_Burnham 、 left を直接使用して結果を取得できます。本当に word を使用したい場合は、以下のこれを参照できます (添付ファイルにデータ表も添付しました)。
Names Default To Here( 1 );
Clear Log();
dt = Current Data Table();
new_col = dt << New Column( "Trimmed Protocol",
character,
formula( Word( [1 -2], :Protocol, "-" ) )
);
Re: 可変長文字列の末尾を削除するLeft(:Protocol, Length(:Protocol) - 4) のようなものRe: 可変長文字列の末尾を削除する// ファイルパスからファイル名を削除するときにも同様の問題が発生しました
名前のデフォルトはここ( 1 )です。
dt = 現在のデータ テーブル();
current_file = dt << Get Path();
current_directory = Word([1 -2], current_file, "\");
// 最後の単語 ([1 -2]) を除く完全な文字列 ([1 -1]) を返します
データ = ファイルを選択(
「データファイルを選択」
現在のディレクトリ、
{"Excel|csv","JMP ファイル|jmp;jsl;jrn","すべてのファイル|*"},
1、
0,
""、 複数
);