Given this data frame (a simplified, essential reproducible example) 




A<-c(8,7,10,1,5) 

A_flag<-c(10,0,1,0,2) 

B<-c(5,6,2,1,0) 

B_flag<-c(12,9,0,5,0) 




mydf<-data.frame(A, A_flag, B, B_flag) 




# this is my initial df 

mydf 




I want to get to this final situation 




i<-which(mydf$A_flag==0) 

mydf$A[i]<-NA 




ii<-which(mydf$B_flag==0) 

mydf$B[ii]<-NA 




# this is my final df 

mydf 




By considering that I have to perform this task in a data frame with many 
columns I’m wondering if there is a compact and effective way to get the final 
result with just one ‘sweep’ of the dataframe? 




I was thinking to the function apply or lapply but I can not properly conceive 
how to… 




any hint for that? 

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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