Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何替换”|&引用;在R_R_Gsub - Fatal编程技术网

“如何替换”|&引用;在R

“如何替换”|&引用;在R,r,gsub,R,Gsub,我有一个包含 “HYD_SOA_UNBLOCK~SOA_BLOCK-UK | SOA_BLOCK-DE | SOA_BLOCK-FR | SOA_BLOCK-IT | SOA_BLOCK-ES |” 我希望结果是- “HYD_SOA_UNBLOCK~SOA_BLOCK-UK | SOA_BLOCK-DE | SOA_BLOCK-FR | SOA_BLOCK-IT | SOA_BLOCK-ES |” 我试过: leadtemp$collate = gsub("||","|",leadtemp$co

我有一个包含

“HYD_SOA_UNBLOCK~SOA_BLOCK-UK | SOA_BLOCK-DE | SOA_BLOCK-FR | SOA_BLOCK-IT | SOA_BLOCK-ES |”

我希望结果是-

“HYD_SOA_UNBLOCK~SOA_BLOCK-UK | SOA_BLOCK-DE | SOA_BLOCK-FR | SOA_BLOCK-IT | SOA_BLOCK-ES |”

我试过:

leadtemp$collate = gsub("||","|",leadtemp$collate) 
但它不起作用


请帮助我按照Flick先生的建议,将“| |”替换为“|”

,在gsub语句中包含fixed=TRUE。出现此问题的原因是“|”是正则表达式运算符。使用fixed=TRUE告诉gsub假定模式是字符串而不是正则表达式

leadtemp$collate = gsub("||","|",leadtemp$collate, fixed=TRUE)
另一种(尽管更复杂)的方法是避开所有的障碍:

leadtemp$collate = gsub("\\|\\|","\\|",leadtemp$collate)

|
是元字符。如您所知,元字符需要通过
\
转义出来<代码>\也是元字符,因此必须以相同的方式将其转义。因此,每当您想在字符串中引用
\\
时,必须将
\\\\\\\\
放入字符串中。这将使您的代码正常工作:

leadtemp$collate = gsub("\\|\\|","\\|",leadtemp$collate)
尝试:

我定义了包含管道字符的字符类,并强制gsub查找两个匹配项。结果是:

"HYD_SOA_UNBLOCK~SOA_BLOCK-UK|SOA_BLOCK-DE|SOA_BLOCK-FR|SOA_BLOCK-IT|SOA_BLOCK-ES|"

只需将
fixed=TRUE
添加到您的
gsub()
"HYD_SOA_UNBLOCK~SOA_BLOCK-UK|SOA_BLOCK-DE|SOA_BLOCK-FR|SOA_BLOCK-IT|SOA_BLOCK-ES|"