Hi, Try this,> dat1 <- data.frame(x=rep(1,6),y=rep(1:3,2), fac=sample(L3, 6, replace=TRUE)) > dat1 x y fac 1 1 1 C 2 1 2 B 3 1 3 B 4 1 1 A 5 1 2 B 6 1 3 B > dat1[dat1$x==1&dat1$y==1,1:2]<-NA > dat1 x y fac 1 NA NA C 2 1 2 B 3 1 3 B 4 NA NA A 5 1 2 B 6 1 3 B
A.K. ----- Original Message ----- From: Daisy Englert Duursma <daisy.duur...@gmail.com> To: "r-help@R-project.org" <r-help@r-project.org> Cc: Sent: Wednesday, June 6, 2012 11:58 PM Subject: [R] conditional statement to replace values in dataframe with NA Hello and thanks for helping. #some data L3 <- LETTERS[1:3] dat1 <- data.frame(cbind(x=1, y=rep(1:3,2), fac=sample(L3, 6, replace=TRUE))) #When x==1 and y==1 I want to replace the 1 values with NA #I can select the rows I want: dat2<-subset(dat1,x==1 & y==1) #replace the 1 with NA dat2$x<-rep(NA,nrow(dat2) dat2$y<-rep(NA,nrow(dat2) #select the other rows and rbind everything back together #This is where I get stuck #The end dataframe will look something like: x y fac NA NA B NA NA A 1 2 C 1 3 C 1 2 C 1 3 A #Is there a better way to do this where I do not need to subset perhaps using lapply? Thanks, Daisy -- Daisy Englert Duursma Department of Biological Sciences Room E8C156 Macquarie University, North Ryde, NSW 2109 Australia Tel +61 2 9850 9256 ______________________________________________ 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. ______________________________________________ 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.