如何使用带句点的strsplit函数

use*_*875 24 r strsplit

我想将其后的字符串拆分为句点.我试着strsplit()"."split说法,但没有得到我想要的结果.

s <- "I.want.to.split"
strsplit(s, ".")
[[1]]
 [1] "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Run Code Online (Sandbox Code Playgroud)

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

[[1]]
[1] "I"     "want"  "to"    "split"
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Ric*_*ven 33

split参数中使用正则表达式时strsplit(),你必须转义.with \\.,或者使用charclass [.].否则,您将.其用作特殊字符,即"任何单个字符".

s <- "I.want.to.split"
strsplit(s, "[.]")
# [[1]]
# [1] "I"     "want"  "to"    "split"
Run Code Online (Sandbox Code Playgroud)

但是这里更有效的方法是使用fixed参数strsplit().使用此参数将绕过正则表达式引擎并搜索完全匹配".".

strsplit(s, ".", fixed = TRUE)
# [[1]]
# [1] "I"     "want"  "to"    "split"
Run Code Online (Sandbox Code Playgroud)

当然,你可以看到help(strsplit)更多.


hwn*_*wnd 5

您需要将点放在字符类.中,或者在它前面加上两个反斜杠来转义它,因为点是正则表达式中具有特殊含义的字符,意思是“匹配任何单个字符(换行符除外)”

s <- 'I.want.to.split'
strsplit(s, '\\.')
# [[1]]
# [1] "I"     "want"  "to"    "split"
Run Code Online (Sandbox Code Playgroud)