文字列内の文字の位置を抽出するにはどうすればよいですか?次の列があります。この列には、ドットや文字(数字なし、特殊文字)などの文字列が含まれています。
ドットではないcharの位置をリストする列を生成したいと思います。 以下の例を参照してください。
JMPで使用できる式やスクリプトはありますか?
・cgaagt··a···········································································································································································································································································
··t・a·····························································································································································
···················································································································
データ表Re:文字列内の文字の位置を抽出する方法は?スクリプトを作成する必要があると思います。
- 文字列を次のリストに変換しますWords(str、 "")
- Substituteを使用して、関心のないすべての値を空の文字列(欠落している値)に置き換えます
- Loc NonMissingを使用して、欠落していない値のインデックスを検索します
Names Default To Here(1);
a = "·cgaagt··a···········";
b = "··t·a·············c··";
c = "·····················";
list_of_chars = Words(a, "");
Substitute Into(list_of_chars, "·", "");
Show(AsList(Loc Nonmissing(list_of_chars)));
a = "··t·a·············c··";
list_of_chars = Words(a, "");
Substitute Into(list_of_chars, "·", "");
Show(AsList(Loc Nonmissing(list_of_chars)));
a = "·····················";
list_of_chars = Words(a, "");
Substitute Into(list_of_chars, "·", "");
Show(AsList(Loc Nonmissing(list_of_chars)));
//As List(Loc Nonmissing(list_of_chars)) = {2, 3, 4, 5, 6, 7, 10};
//As List(Loc Nonmissing(list_of_chars)) = {3, 5, 19};
//As List(Loc Nonmissing(list_of_chars)) = {};Re:文字列内の文字の位置を抽出する方法は?拡大する@jthiすばらしい解決策です。問題を処理する最善の方法は、結果を配置するための新しい列を作成することだと思います。また、あなたは「。」だけではないことを示しました。特殊文字として使用される場合があります。したがって、以下のJSLは、複数の特殊文字を処理でき、結果を新しい列に返す数式です。文字列を作成し、数式を切り取って貼り付けるだけです。

list_of_chars = Words( :strings, "" );
Substitute Into( list_of_chars, ".", "", "+", "", "/", "" );
charList = As List( Loc Nonmissing( list_of_chars ) );
Substr( Char( charList ), 2, Length( Char( charList ) ) - 2 );