使用“ \\; +;”作为不起作用的正则表达式[重复]

问题描述 投票:0回答:1

[我正在尝试从数据帧的列中提取+-符号到矢量:

如果我有此数据框:

sample    info   
 A        man;+;yes;no
 B        man;-;no;no
 C        woman;+;yes;no
 D        man;NA;no;no
 E        woman;-;yes;no

我正在尝试将info列中包含的符号(+或-)提取到矢量中:

strand<-vector()
for (i in 1:nrow(df)){
  if(grepl(";\\+;", df[i,2]) == TRUE){
  strand[i]<-'+'
  }
  if(grepl(";-;", df[i,2]) == TRUE){
  strand[i]<-'-'
  }
  else{strand[i]<-NA}
}

但是我没有得到+标记:

print(strand)
NA - NA  NA  -

为什么我的循环正在打印NA而不是+符号?谢谢!

r grep
1个回答
0
投票

您可以使用转义字符\,这样您的代码将看起来像

grep(";\\+;", df$info)
© www.soinside.com 2019 - 2024. All rights reserved.