FWIW:
I think Jim makes an excellent point -- regex's really aren't the right
tool for this sort of thing (imho); matching is.
Note also that if one is willing to live with a logical response (better,
again imho), then the ifelse() can of course be dispensed with:
> CRC$MMR.gene<-CRC$gene.all %i
Hi Kai,
You may find %in% easier than grep when multiple matches are needed:
match_strings<-c("MLH1","MSH2")
CRC<-data.frame(gene.all=c("MLH1","MSL1","MSH2","MCC3"))
CRC$MMR.gene<-ifelse(CRC$gene.all %in% match_strings,"Yes","No")
Composing your match strings before applying %in% may be more flex
Hi,
A quick clarification:
The regular expression is a single quoted character vector, not a
character vector on either side of the | operator:
"MLH1|MSH2"
not:
"MLH1"|"MSH2"
The | is treated as a special character within the regular expression.
See ?regex.
grep(), when value = FALSE, r
Hi Rui,thank you for your suggestion.
but when I try the solution, I got message below:
Error in "MLH1" | "MSH2" : operations are possible only for numeric, logical
or complex types
does it mean, grepl can not work on character field?
Thanks,KaiOn Thursday, May 27, 2021, 01:37:58 AM PDT,
Hello,
ifelse needs a logical condition, not the value. Try grepl.
CRC$MMR.gene <- ifelse(grepl("MLH1"|"MSH2",CRC$gene.all), "Yes", "No")
Hope this helps,
Rui Barradas
Às 05:29 de 27/05/21, Kai Yang via R-help escreveu:
Hi List,
I wrote the code to create a new variable:
CRC$MMR.gene<-ifel
Post in plain text
Use grepl
On May 26, 2021 9:29:10 PM PDT, Kai Yang via R-help
wrote:
>Hi List,
>I wrote the code to create a new variable:
>CRC$MMR.gene<-ifelse(grep("MLH1"|"MSH2",CRC$gene.all,value=T),"Yes","No")
>
>
>I need to create MMR.gene column in CRC data frame, ifgene.all column
>c
Hi List,
I wrote the code to create a new variable:
CRC$MMR.gene<-ifelse(grep("MLH1"|"MSH2",CRC$gene.all,value=T),"Yes","No")
I need to create MMR.gene column in CRC data frame, ifgene.all column contenes
MLH1 or MSH2, then the MMR.gene=Yes, if not,MMR.gene=No
But, the code doesn't work for me
7 matches
Mail list logo