全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
18315 6
2014-06-10
清理数据,要把反斜杠"\"换成"/".

试了一下,匹配两个反斜杠是没问题的,如下
> str_detect(tmp,"\\\\")   


匹配一个反斜杠, 试了
> str_detect(tmp,"\\")
Error in grepl("\\",c( balabala...:
    invalid regular expression '\' ,  reason 'Trailing backslash'  

再试:
> str_detect(tmp,"\\\")
+ >
难道提示我没输入完整??
各种凌乱中...

求指点, 谢谢

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-6-10 16:24:43
继续凌乱:

刚才去查了一下,所有找到的两个反斜杠,在数据库里面原本就是一个反斜杠...

求指点一下关于反斜杠的怪异表现吧~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-11 08:37:22
bluesmoonlight 发表于 2014-6-10 16:24
继续凌乱:

刚才去查了一下,所有找到的两个反斜杠,在数据库里面原本就是一个反斜杠...
R里面  默认会将一个\   转义成两个\\
   匹配的时候 由于是元字符,又得两个\\进行转义,所以需要四个\\\\
   

若原文件是两个\\,则需八个\



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-11 08:55:07
在R里,\\就是\,其中第一个反斜杠是用来转义的

你如果在R里想给一个变量赋路径名称,其中的\要写成\\,否则会出错

另外如果你导入一个文件,里面有变量含有\,则在R里还是显示为\\
但在匹配的时候,还是要用\\转义,并且要加[],如下所示
str_detect(tmp,"[\\]")
gsub("[\\]","/",tmp)

你试试,这样就行了。只不过我觉得这种转义之后还要加[]算是一大bug,stackoverflow上有人问过,见下
http://stackoverflow.com/questio ... pe-a-backslash-in-r
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-11 10:11:36
R和python比还是不方便, 不支持python在字符串前面加r这种方式, 搞得正则表达式非常难写. 希望那天开发R的人把python的字符串功能移植过去, 比如r", 比如""", 比如u"...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-11 13:24:42
学习了,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群