次の文字列をピリオドで分割したいと思います。 split
引数に_"."
_を指定してstrsplit()
を試しましたが、必要な結果が得られませんでした。
_s <- "I.want.to.split"
strsplit(s, ".")
[[1]]
[1] "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
_
私が望む出力は、次のようにs
をリスト内の4つの要素に分割することです。
_[[1]]
[1] "I" "want" "to" "split"
_
私は何をすべきか?
strsplit()
のsplit
引数で正規表現を使用する場合、.
を使用して\\.
をエスケープするか、charclass [.]
を使用する必要があります。それ以外の場合は、.
を特殊文字の意味として「任意の1文字」として使用します。
s <- "I.want.to.split"
strsplit(s, "[.]")
# [[1]]
# [1] "I" "want" "to" "split"
しかし、ここでのより効率的な方法は、strsplit()
でfixed
引数を使用することです。この引数を使用すると、正規表現エンジンがバイパスされ、"."
の完全一致が検索されます。
strsplit(s, ".", fixed = TRUE)
# [[1]]
# [1] "I" "want" "to" "split"
そしてもちろん、help(strsplit)
をもっと見ることができます。
strsplit()
の他に、scan()
も使用できます。試してください:
scan(what = "", text = s, sep = ".")
# Read 4 items
# [1] "I" "want" "to" "split"