On 2010-12-15 09:44, Hrithik R wrote:
Hi Steven and Peter,
I apologise for not providing the code for the sample
I now realise what I need may be a bit tricky...
my dataframe has hundreds of IDs in which case Steven's solution will
not be optimum
Peter's solution seems best, but how do I reverse this and use it to
select the dataframe rows which */_do not_/* contain particular IDs say
for example IDs 2 and 5 in this case.

That's easy; use the 'NOT' operator ('!' in R):

 DF2 <- subset(DF, !(ID %in% c(2,5)))

Peter Ehlers

Thanks again for your time
Rith

------------------------------------------------------------------------
*From:* Peter Ehlers <ehl...@ucalgary.ca>
*To:* steven mosher <mosherste...@gmail.com>
*Cc:* Hrithik R <rit...@yahoo.com>; "r-help@r-project.org"
<r-help@r-project.org>
*Sent:* Wed, December 15, 2010 3:26:14 AM
*Subject:* Re: [R] selecting certain rows from data frame

On 2010-12-14 23:57, steven mosher wrote:
 > Hi,
 > Next time give folks code to produce a toy sample of your problem
 >
 > DF<-data.frame(ID=rep(1:5,each=3),Data=rnorm(15),Stuff=seq(1:15))
 > DF
 > ID Data Stuff
 > 1 1 2.0628225 1
 > 2 1 0.6599165 2
 > 3 1 0.5672595 3
 > 4 2 -0.5308823 4
 > 5 2 -0.5358471 5
 > 6 2 -0.1414992 6
 > 7 3 -0.1679643 7
 > 8 3 0.9220922 8
 > 9 3 0.8863018 9
 > 10 4 -0.7255916 10
 > 11 4 -1.2446753 11
 > 12 4 0.8165567 12
 > 13 5 0.0925008 13
 > 14 5 -0.8534803 14
 > 15 5 -0.6535016 15
 >
 > # now I want to select rows where ID = 2 or 5
 > # Assign DF2 to those elements of DF where the ID variable=2 or 5
 >
 > DF2<- DF[which(DF$ID==2 | DF$ID==5), ]

Or use subset():

DF2 <- subset(DF, ID %in% c(2,5))

Peter Ehlers

 > DF2
 > ID Data Stuff
 > 4 2 -0.5308823 4
 > 5 2 -0.5358471 5
 > 6 2 -0.1414992 6
 > 13 5 0.0925008 13
 > 14 5 -0.8534803 14
 > 15 5 -0.6535016 15
 >
 > On Tue, Dec 14, 2010 at 10:10 PM, Hrithik R<rit...@yahoo.com
<mailto:rit...@yahoo.com>> wrote:
 >
 >> Hi,
 >> if I have a dataframe such that
 >>
 >> ID Time Earn
 >> 1 1 10
 >> 1 2 50
 >> 1 3 68
 >> 2 1 40
 >> 2 2 78
 >> 2 4 88
 >> 3 1 50
 >> 3 2 60
 >> 3 3 98
 >> 4 1 33
 >> 4 2 48
 >> 4 4 58
 >> .....
 >> ....
 >> .....
 >>
 >> Now if I have to select the all the rows from the data frame which
does not
 >> include rows with certain IDs, say for example (prime) ID == 2& 3,
how do
 >> I do
 >> it
 >>
 >>
 >> Thanks
 >>
 >> Rith
 >>


______________________________________________
R-help@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.

Reply via email to