[R] Stop on fail using data manipulation
arun
smartpink111 at yahoo.com
Mon May 27 18:58:15 CEST 2013
I have a doubt about your New table especially the 3rd row:
Since after "test1" , the test fails, i guess 4,5 should be NA
dat1<-read.table(text="
Device,first_failing_test,test1,test2,test3,test4,test5
1,test2,1,2,3,4,5
2,test4,2,3,4,5,6
3,test1,3,4,5,6,7
",sep=",",header=TRUE,stringsAsFactors=FALSE)
res<-do.call(rbind,lapply(seq_len(nrow(dat1)),function(i) {indx<-colnames(dat1[i,])[-c(1:2)]%in% dat1[i,2]; indx1<- indx[-length(indx)];dat1[i,-c(1:2)][as.logical(cumsum(c(FALSE,indx1)))]<-NA; dat1[i,] }))
res
# Device first_failing_test test1 test2 test3 test4 test5
#1 1 test2 1 2 NA NA NA
#2 2 test4 2 3 4 5 NA
#3 3 test1 3 NA NA NA NA
A.K.
----- Original Message -----
From: Ala' Jaouni <ajaouni at gmail.com>
To: r-help at r-project.org
Cc:
Sent: Monday, May 27, 2013 10:40 AM
Subject: [R] Stop on fail using data manipulation
Hello,
I have a data set with test results for multiple devices (rows). I also
have an index (column) that stores the first failing test for each device.
I need to remove the results for all the tests that come after the first
failing test.
Example of a data table:
Device,first_failing_test,test1,test2,test3,test4,test5
1,test2,1,2,3,4,5
2,test4,2,3,4,5,6
3,test1,3,4,5,6,7
New table:
Device,first_failing_test,test1,test2,test3,test4,test5
1,test2,1,2,na,na,na
2,test4,2,3,4,5,na
3,test1,3,4,5,na,na
Ideally I need to pass the first table as an argument to a function and get
back the second table.
Any idea how this can be done in R?
Thanks
[[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