R strsplit并没有分裂到"。"?

时间:2015-12-17 19:49:08

标签: r strsplit

我正在编写一个R脚本,并希望定义一个变量,以便在绘图注释中用作文件名的一部分。我以为我会使用strsplit()函数。这是我的代码和输出:

infile = "ACC_1346.table.txt"

x = strsplit(infile, ".")

class(infile)
[1] "character"

class(x)
[1] "list"

str(x)
List of 1
$ : chr [1:18] "" "" "" "" ...

x[[1]]
[1] "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

我预计最终输出为:

[1] "ACC_1346" "table" "txt"

这里发生了什么?

2 个答案:

答案 0 :(得分:5)

要避免正则表达式在fixed = TRUE的调用中完全使用strsplit

infile = "ACC_1346.table.txt"
x = strsplit(infile, ".", fixed = TRUE)

x

[[1]]
[1] "ACC_1346" "table" "txt"

答案 1 :(得分:3)

strsplit寻求regex进行拆分。在正则表达式中,"."是一个几乎与任何东西匹配的通配符。要使用\实际匹配您需要转义的点。由于\也是R中的转义字符,因此您需要将其转义为\\.

两次