从字符串R中删除前导反斜杠

时间:2014-12-26 15:55:46

标签: r string escaping

这是字符串:

> raw.data[27834,1]
[1] "\xff$GPGGA"

我尝试过以下两个问题的建议,但没有运气:

How to escape a backslash in R?

How to escape backslashes in R string

有没有人能从上述问题中得到不同的解决方案?理想的解决方案是删除"\xff"部分,但是对于任何字母组合。

1 个答案:

答案 0 :(得分:2)

该字符串中没有反斜杠。显示的反斜杠是一个转义标记。关于“特殊情况”的输入和显示的这个和其他功能在?Quotes帮助页面中进行了描述。您已经获得了一个正则表达式而非椭圆形的删除方法。以下是其他几种方法......其中只有一些方法实际上成功了,因为\ff是第一个“字符”而且它作为R字符并不合法:

 s <- "\xff$GPGGA"
 strsplit(s, "")
#[[1]]
#[1] NA

Warning message:
In strsplit(s, "") : input string 1 is invalid in this locale

 substr(s, 1,1)
#Error in substr(s, 1, 1) : invalid multibyte string at '<ff>$GP<47>GA'
 gsub('.*([^A-Za-z].*)', '\\1',"\xff$GPGGA")#[1]
#[1] "$GPGGA"
 ?Quotes
 gsub('\xff', '',"\xff$GPGGA")#[1]
#[1] "$GPGGA"

我认为正则表达式函数不会阻塞该字符串的原因是正则表达式实际上是系统调解的过程,而strsplitsubstr是内部R函数。

@RichardScriven发布了一个示例,当我尝试复制它时,我得到了一个不同的示例,显示了显示字符的映射是特定于系统的。我在OSX 10.10.1(优胜美地)&gt;

cat('\xff')
ˇ

(我离开了通常出来的octothorpe(#)。)