[R] Removing rows if certain elements are found in character string

arun smartpink111 at yahoo.com
Tue Jul 3 01:29:32 CEST 2012



Hi,

Try this:

dat1<-read.table(text="
1  0000000000D0000000000000000000000000000000000000 0.007368;
2  0000000000d0000000000000000000000000000000000000 0.002456;
3  000000000T00000000000000000000000000000000000000 0.007368;
4  000000000TD0000000000000000000000000000000000000 0.007368;
5  000000000T00000000000000000000000000000000000000 0.002456;
6  000000000Td0000000000000000000000000000000000000 0.002456;
7  00000000T000000000000000000000000000000000000000 0.007368;
8  00000000T0D0000000000000000000000000000000000000 0.007368;
9  00000000T000000000000000000000000000000000000000 0.002456;
10 00000000T0d0000000000000000000000000000000000000 0.002456;
",sep="",header=FALSE)

colnames(dat1)<-c("num","Ch", "count")

#I guess this is what you wanted.

 dat1[grepl("TD|Td|T",dat1$Ch),]
   num                                               Ch     count
3    3 000000000T00000000000000000000000000000000000000 0.007368;
4    4 000000000TD0000000000000000000000000000000000000 0.007368;
5    5 000000000T00000000000000000000000000000000000000 0.002456;
6    6 000000000Td0000000000000000000000000000000000000 0.002456;
7    7 00000000T000000000000000000000000000000000000000 0.007368;
8    8 00000000T0D0000000000000000000000000000000000000 0.007368;
9    9 00000000T000000000000000000000000000000000000000 0.002456;
10  10 00000000T0d0000000000000000000000000000000000000 0.002456;

#If you want to remove D or d rows
 dat1[!grepl("D|d",dat1$Ch),]
  num                                               Ch     count
3   3 000000000T00000000000000000000000000000000000000 0.007368;
5   5 000000000T00000000000000000000000000000000000000 0.002456;
7   7 00000000T000000000000000000000000000000000000000 0.007368;
9   9 00000000T000000000000000000000000000000000000000 0.002456;

A.K.


----- Original Message -----
From: Claudia Penaloza <claudiapenaloza at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Monday, July 2, 2012 6:48 PM
Subject: [R] Removing rows if certain elements are found in character string

I would like to remove rows from the following data frame (df) if there are
only two specific elements found in the df$ch character string (I want to
remove rows with only "0" & "D" or "0" & "d"). Alternatively, I would like
to remove rows if the first non-zero element is "D" or "d".


                                                 ch     count
1  0000000000D0000000000000000000000000000000000000 0.007368;
2  0000000000d0000000000000000000000000000000000000 0.002456;
3  000000000T00000000000000000000000000000000000000 0.007368;
4  000000000TD0000000000000000000000000000000000000 0.007368;
5  000000000T00000000000000000000000000000000000000 0.002456;
6  000000000Td0000000000000000000000000000000000000 0.002456;
7  00000000T000000000000000000000000000000000000000 0.007368;
8  00000000T0D0000000000000000000000000000000000000 0.007368;
9  00000000T000000000000000000000000000000000000000 0.002456;
10 00000000T0d0000000000000000000000000000000000000 0.002456;


I tried the following but it doesn't work if there is more than one
character per string:

>df <- df[!df$ch %in% c("0","D"),]
>df <- df[!df$ch %in% c("0","d"),]

Any help greatly appreciated,
Claudia

    [[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list