[R] Select the last rows of when specific conditions are met.
arun
smartpink111 at yahoo.com
Thu Nov 1 22:02:35 CET 2012
HI,
Instead of splitting, you could also do this:
dat1<-read.table(text="
Subj Trial tt
1 1 1
1 1 2
1 1 3
1 1 4
1 1 5
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
1 3 3
2 1 1
2 1 2
2 1 3
",sep="",header=TRUE)
dat2<-dat1[as.logical(ave(dat1$tt,list(dat1$Subj,dat1$Trial),FUN=function(x) x<4)),]
dat2
# Subj Trial tt
#1 1 1 1
#2 1 1 2
#3 1 1 3
#6 1 2 1
#7 1 2 2
#8 1 2 3
#9 1 3 1
#10 1 3 2
#11 1 3 3
#12 2 1 1
#13 2 1 2
#14 2 1 3
A.K.
----- Original Message -----
From: mardijk <van_dijkmarianne at hotmail.com>
To: r-help at r-project.org
Cc:
Sent: Thursday, November 1, 2012 11:18 AM
Subject: [R] Select the last rows of when specific conditions are met.
Hello,
As I am new with R I am completely stuck in resolving a, no doubt, easy
problem.
I have a dataset with an enormous amount of rows and 17 columns. I need to
know per trial and subject number if another variable (tt) exceeds a
maximum. If this is true than the last 5000 rows of that specific trial for
that subject number needs to be deleted.
But I am completely stuck on how to do so. After various attempts I have
finally come up with the following (which obviously does not work).
if (dat["tt"]>6000
){
return(
tail(dattest[,c("Trial", "Subj" )],n=5000) <- NA
}
Can anybody explain what I need to do?
Thank you so much!
--
View this message in context: http://r.789695.n4.nabble.com/Select-the-last-rows-of-when-specific-conditions-are-met-tp4648133.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
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