[R] conditional statement to replace values in dataframe with NA
arun
smartpink111 at yahoo.com
Thu Jun 7 07:02:16 CEST 2012
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.duursma at gmail.com>
To: "r-help at R-project.org" <r-help at 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 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