参照単語と2文字以上異なる単語を(列の数式を使用して)識別するにはどうすればよいですか?皆さんこんにちは、
異なる文字の組み合わせを持つ単語で構成される列があります(つまり、AAAAAAAAAA-10文字の単語)。 隣接する列で、2文字以上異なる単語を識別したい(例:A B AAAA CE AA)。 文字が異なる位置は関係ありません。さらに、一部の単語は、私の参照単語よりも短い場合も長い場合もあります。
したがって、参照シーケンスとの文字差が2未満/以上で、長さが同じである単語を区別/識別できる式を実現したいと考えています。 私はまだJMPの初心者であり、これを達成できるかどうかはわかりません。 何か提案があれば教えてください:)
データ表Re:参照単語と2文字以上異なる単語を(列の数式を使用して)識別するにはどうすればよいですか?添付の表をご覧ください。これから始めることができます。 その中心となるのは数式列です(「決定」と呼ばれ、表の列パネルでは「+」記号で示されます。 「+」をクリックすると、次のようになります。

これを理解するには、JSLの知識が必要です。必要に応じて、[ヘルプ]> [スクリプトインデックス]を使用して、JSLがどのように機能するかを正確に把握できます。
Re:参照単語と2文字以上異なる単語を(列の数式を使用して)識別するにはどうすればよいですか?これを行うための多くの方法。 追加のオプションが1つあります。
Names Default To Here(1);
/*
a = "ABAAAACEAA";
b = "AAAAAAAAAA";
Show(!IsMissing(Substitute(a, Left(a,1), "")));
Show(!IsMissing(Substitute(b, Left(b,1), "")));
*/
New Table("Untitled 2",
Add Rows(3),
New Column("Column 1", Character, "Nominal", Set Values({"ABAAAACEAA", "AAAAAAAAAA", "BBBBAAA"})),
New Column("Column 2",
Numeric,
"Continuous",
Format("Best", 12),
Formula(!Is Missing(Substitute(:Column 1, Left(:Column 1, 1), "")))
)
);
Column1は文字を含む列です
Formula(!Is Missing(Substitute(:Column 1, Left(:Column 1, 1), "")))
この簡単な例では、最初の位置から見つかった文字列のすべての値を置き換えることです。まだ文字が残っている場合は、文字列に複数の文字が含まれていることがわかります。 置き換える値が複数ある場合は、Substitute関数の引数を変更することで同じアイデアを使用できるはずです。
Re:参照単語と2文字以上異なる単語を(列の数式を使用して)識別するにはどうすればよいですか?こんにちはイアン、
フィードバックをお寄せいただきありがとうございます。 あなたが書いた式を実装しようとしましたが、参照シーケンスがAAAAAAAであり、他のものではないと定義できる場所がわかりません。 アイテム選択の「」を「AAAAAAAA」に置き換えましたが、結果が正しくありませんでした。 あなたが書いた数式をどのようにアップグレードできますか?
Re:参照単語と2文字以上異なる単語を(列の数式を使用して)識別するにはどうすればよいですか?こんにちはJthi、提案をありがとう。
正直なところ、私はまだ式を理解しようとしています: ')。 私が取り組んでいるファイルには、参照語が1つしかないため、位置と文字の可能なすべての組み合わせで100万を超える行エントリをスクリーニングする必要があります。 式でこれらの値を定義できないため、この式は機能しないと思います。 大規模なデータベースIveを考慮してそれを適応させることは可能でしょうか?
Re:参照単語と2文字以上異なる単語を(列の数式を使用して)識別するにはどうすればよいですか?「あなたが何を意味するのか誤解したようです隣接する列で、2文字以上異なる単語を識別したい"。 私が提案したのは、ソース列の各セルに2つ以上の異なる文字で構成される文字列が含まれている行にフラグを立てることです(したがって、参照シーケンスや文字列はありません)。
Re:参照単語と2文字以上異なる単語を(列の数式を使用して)識別するにはどうすればよいですか?さらにいくつかの例が必要です。 の違いの数はいくつですか(過度に指定しないでください。重要でない場所を示してください)。
ref = "AEIOUA" //繰り返される文字のルールを理解しようとしています
test = "AEIOUA" //同一の文字列の場合はnDiff = 0
test = "AAEIOU" // nDiff =?同じ文字の場合、並べ替え
test = "AEIOU" // nDiff =?同じ文字の場合、右側に1つありません
test = "EIOUA" // nDiff =?同じ文字の場合、左側に1つありません
test = "EIOU" // nDiff =?
test = "AA" // dDiff =?
test = "AXA" // dDiff =?
test = "AXXXXA" // dDiff =?長さを一致させるため
test = "AEIUOA" // dDiff =?交換された内部文字の場合
test = "AEIOUEIOU" // nDiff =?繰り返される文字の場合
これらの回答は、アルゴリズムの選択に役立ちます。
あなたは〜1e6テストワードを言いました。あなたはいくつのrefワードを見ていますか?
「はい/いいえ、2つ以上の違いがあります」以外の答えが必要ですか? 差分のカウントは役に立ちますか?