Re: [R] R grep question

2021-05-28 Thread Bert Gunter
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

Re: [R] R grep question

2021-05-27 Thread Jim Lemon
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

Re: [R] R grep question

2021-05-27 Thread Marc Schwartz via R-help
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

Re: [R] R grep question

2021-05-27 Thread Kai Yang via R-help
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,

Re: [R] R grep question

2021-05-27 Thread Rui Barradas
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

Re: [R] R grep question

2021-05-26 Thread Jeff Newmiller
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

[R] R grep question

2021-05-26 Thread Kai Yang via R-help
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