[英]gsub with "|" character in R
我在变量下有一个带有字符串的数据框|
特点。 我想要的是删除任何下游的|
特点。
例如,考虑字符串
heat-shock protein hsp70, putative | location=Ld28_v01s1:1091329-1093293(-) | length=654 | sequence_SO=chromosome | SO=protein_coding
我希望只有:
heat-shock protein hsp70, putative
我是否需要任何转义字符为|
特点?
如果我做:
a <- c("foo_5", "bar_7")
gsub("*_.", "", a)
我得到:
[1] "foo" "bar"
即我正在删除_
字符下游的任何内容。
但是,如果我用|
重复相同的任务而不是_
:
b <- c("foo|5", "bar|7")
gsub("*|.", "", a)
我得到:
[1] "" ""
你必须逃避|
通过添加\\\\|
. 尝试这个
> gsub("\\|.*$", "", string)
[1] "heat-shock protein hsp70, putative "
string
在哪里
string <- "heat-shock protein hsp70, putative | location=Ld28_v01s1:1091329-1093293(-) | length=654 | sequence_SO=chromosome | SO=protein_coding"
此替代方法删除输出中行尾的空格
gsub("\\s+\\|.*$", "", string)
[1] "heat-shock protein hsp70, putative"
strsplit
比gsub
更好
是的,看起来管道确实需要转义。
string <- "heat-shock protein hsp70, putative | location=Ld28_v01s1:1091329-1093293(-) | length=654 | sequence_SO=chromosome | SO=protein_coding"
strsplit(string, ' \\| ')[[1]][1]
那输出
"heat-shock protein hsp70, putative"
请注意,我假设您只需要第一个管道之前的文本,并且您希望删除将管道与您关心的字符串部分分开的空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.