【问题标题】:strsplit in R with a metacharacter在 R 中使用元字符进行 strsplit
【发布时间】:2012-06-06 08:17:44
【问题描述】:

我有大量数据,其中分隔符是反斜杠。我在 R 中处理它,我很难找到如何拆分字符串,因为反斜杠是一个元字符。例如,一个字符串如下所示:

1128\0019\XA5\E2R\366\00=15

我想将它沿\ 字符拆分,但是当我运行 strsplit 命令时:

strsplit(tempStr, "\\")
Error in strsplit(tempStr, "\\") : 
  invalid regular expression '\', reason 'Trailing backslash'

当我尝试使用“固定”选项时,它没有运行,因为它在反斜杠后面期待一些东西:

strsplit(tempStr, "\", fixed = TRUE)

很遗憾,我无法使用其他程序对数据进行预处理,因为数据是每天生成的。

【问题讨论】:

    标签: string r split strsplit metacharacters


    【解决方案1】:

    试试这个:

    strsplit(tempStr, "\"")
    

    【讨论】:

      【解决方案2】:

      我怀疑您的数据位于某种文件中。如果是这种情况,则使用 read.table 但明确指定分隔符。例如,假设您的文件是:

      a\b\c\d
      e\f\g\h
      

      然后将其读入 R,使用命令:

      read.table("file.txt", sep="\\")
      

      【讨论】:

        【解决方案3】:

        你的代码行是(虽然你没有明确地说出来):

        strsplit(tempStr, "\\")
        

        应该是

        strsplit(tempStr, "\\\\")
        

        这将读作“\\”,正则表达式将其理解为“\”。

        【讨论】:

        • 不幸的是,这不起作用...我只是得到相同的字符串。还有其他想法吗?谢谢。
        • 能否提供一个独立的示例(即,将其放入 R 代码中以便我们运行它?)
        • 是的,同样的问题...当我执行 \\\\ 时,它会删除所有出现的双斜杠,但 \\ 会出现上述错误,并且 \\\\ 会尝试转义以下引号...
        • @JoshuaEricTurcotte 你能提供一个独立的例子吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-12
        • 2016-06-19
        • 1970-01-01
        • 2011-09-16
        • 2017-11-24
        • 1970-01-01
        • 2013-03-04
        相关资源
        最近更新 更多