R strsplit不';不要在“上”拆分&引用;?
我正在编写一个R脚本,并希望定义一个变量,作为文件名的一部分用于打印注释。我想我应该使用strsplit()函数。以下是我的代码和输出:R strsplit不';不要在“上”拆分&引用;?,r,strsplit,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] "" "" "" ""
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"
这是怎么回事
strsplit
寻找一个用于执行拆分的方法。在正则表达式中,a是一个通配符,几乎可以匹配任何东西。要实际匹配点,需要使用\
进行转义。由于\
也是R中的转义字符,因此需要将其转义为\\\.
两次。要避免正则表达式被完全使用,请在调用strsplit时使用fixed=TRUE
infile = "ACC_1346.table.txt"
x = strsplit(infile, ".", fixed = TRUE)
x
[[1]]
[1] "ACC_1346" "table" "txt"
是一个特殊的角色。在“\\.”上拆分,而不是?strsplit
,然后查看示例。他们建议在[.]
cat(例如(strsplit,give.lines=TRUE)[16:21],sep=“\n”)
是您的答案。值得注意的是,这也比执行\\.
更有效。