如何使用带句点的strsplit函数

时间:2014-10-30 23:20:43

标签: r strsplit

我想按句点拆分以下字符串。我在strsplit()参数中使用"."尝试split,但没有得到我想要的结果。

s <- "I.want.to.split"
strsplit(s, ".")
[[1]]
 [1] "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

我想要的输出是将s拆分为列表中的4个元素,如下所示。

[[1]]
[1] "I"     "want"  "to"    "split"

我该怎么办?

3 个答案:

答案 0 :(得分:29)

split的{​​{1}}参数中使用正则表达式时,您必须使用strsplit()转义.,或使用charclass {{ 1}}。否则,您使用\\.作为其特殊字符含义,&#34;任何单个字符&#34;。

[.]

但这里更有效的方法是使用.中的s <- "I.want.to.split" strsplit(s, "[.]") # [[1]] # [1] "I" "want" "to" "split" 参数。使用此参数将绕过正则表达式引擎并搜索fixed的完全匹配。

strsplit()

当然,您可以看到"."了解更多信息。

答案 1 :(得分:2)

您需要将点.置于character class内或在其前面加上两个反斜杠以逃避它,因为点是正则表达式中special meaning的字符&#34 ;匹配任何单个字符(换行符除外)&#34;

s <- 'I.want.to.split'
strsplit(s, '\\.')
# [[1]]
# [1] "I"     "want"  "to"    "split"

答案 2 :(得分:1)

strsplit()外,您还可以使用scan()。尝试:

scan(what = "", text = s, sep = ".")
# Read 4 items
# [1] "I"     "want"  "to"    "split"