2016-05-15 1 views
0

以下の文字の論理演算で出力がFALSEになるためにRが使用するロジックは何ですか?文字列全体ではなく文字Sと文字Tを比較するだけですか?文字列を比較する際の基礎となるロジックは何ですか?

"Sachin" > "Tendulkar" Output: FALSE

+0

文字列の比較方法の詳細については、「?比較」を参照してください。最小限にするには難しい。 –

+0

@BryanHanson、私は*潜在的にトリッキーだと同意しますが、この例は簡単です。特殊文字などがなくても、ほぼすべてのロケール設定で同じように出てくるはずです... –

+1

質問の背景は何ですか?あなたは単にアルファベット順で位置を見つけようとしていますか?あなたがそれをたくさんしているなら、そのためのより良いツールがあります。それはパッケージのためですか?その場合、ユーザーのエンコードとロケールについて心配する必要があります。それ以外の場合は、@BenBolkerでカバーします。 –

答えて

2

これは、マニュアルです。 ?">"が与える:文字ベクトル内の文字列の

の比較は、言い換えれば使用

にロケールの照合順序を使用して文字列内の辞書で、これは普通の辞書形式の比較です。ロケールによっては、非常に複雑なものや奇妙なもの(アルファベットではないもの、アクセント付きのもの、小文字の大文字/小文字などの処理方法)がありますが、このケースは単純です。 "S"は私が想像できるすべてのロケールで "T"の前に来るので、"S"<"T";辞書順ソートでは、これにより順序が決定されます(そうでなければ、順序は後の文字で順序が崩れます)。

関連する問題