如何替换“|”在 R
How to replace "|" in R
我有一个包含
的数据框
"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)
但它不起作用。
请帮我替换“||”用“|”
按照 MrFlick 的建议,在您的 gsub 语句中包含 fixed = TRUE。出现问题是因为“|”是正则表达式运算符。使用 fixed = TRUE 告诉 gsub 假定模式是字符串而不是 RegEx。
leadtemp$collate = gsub("||","|",leadtemp$collate, fixed=TRUE)
另一种(虽然更复杂)的方法是转义所有 |s:
leadtemp$collate = gsub("\|\|","\|",leadtemp$collate)
|
是元字符。如您所见 here,需要使用 \
转义元字符。 \
也是一个元字符,因此必须以相同的方式将其转义。所以每当你想在字符串中引用 |
时,你必须放置 \|
。这应该使您的代码工作:
leadtemp$collate = gsub("\|\|","\|",leadtemp$collate)
尝试:
gsub("[|]{2}", "|", leadtemp$collate)
我已经定义了包含管道字符的字符 class 并强制 gsub 查找恰好两个 occurrences.Result 是:
"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|"
我希望结果是-
"HYD_SOA_UNBLOCK~SOA_BLOCK-UK|SOA_BLOCK-DE|SOA_BLOCK-FR|SOA_BLOCK-IT|SOA_BLOCK-ES|"
我试过了:
leadtemp$collate = gsub("||","|",leadtemp$collate)
但它不起作用。
请帮我替换“||”用“|”
按照 MrFlick 的建议,在您的 gsub 语句中包含 fixed = TRUE。出现问题是因为“|”是正则表达式运算符。使用 fixed = TRUE 告诉 gsub 假定模式是字符串而不是 RegEx。
leadtemp$collate = gsub("||","|",leadtemp$collate, fixed=TRUE)
另一种(虽然更复杂)的方法是转义所有 |s:
leadtemp$collate = gsub("\|\|","\|",leadtemp$collate)
|
是元字符。如您所见 here,需要使用 \
转义元字符。 \
也是一个元字符,因此必须以相同的方式将其转义。所以每当你想在字符串中引用 |
时,你必须放置 \|
。这应该使您的代码工作:
leadtemp$collate = gsub("\|\|","\|",leadtemp$collate)
尝试:
gsub("[|]{2}", "|", leadtemp$collate)
我已经定义了包含管道字符的字符 class 并强制 gsub 查找恰好两个 occurrences.Result 是:
"HYD_SOA_UNBLOCK~SOA_BLOCK-UK|SOA_BLOCK-DE|SOA_BLOCK-FR|SOA_BLOCK-IT|SOA_BLOCK-ES|"