On Jun 8, 2009, at 1:48 PM, Cecilia Carmo wrote:
Hi R-helpers!
I have the following dataframe:
firm<-c(rep(1:3,4))
year<-c(rep(2001:2003,4))
X1<-rep(c(10,NA),6)
X2<-rep(c(5,NA,2),4)
data<-data.frame(firm, year,X1,X2)
data
So I want to obtain the same dataframe with a variable X3 that is:
X1, if X2=NA
X2, if X1=NA
X1+X2 if X1 and X2 are not NA
So my final data is
X3<-c(15,NA,12,5,10,2,15,NA,12,5,10,2)
finaldata<-data.frame(firm, year,X1,X2,X3)
data$X3 <- with(data, X1+X2) # creates values for the valid pairs and
NA otherwise
data[is.na(data$X3),"X3"] <- data$X1[is.na(data$X3)] # NA's replaced
with X1 including NA's
data[is.na(data$X3),"X3"] <- data$X2[is.na(data$X3)] # remaining X1-
NA's replaced with X2
> data
firm year X1 X2 X3
1 1 2001 10 5 15
2 2 2002 NA NA NA
3 3 2003 10 2 12
4 1 2001 NA 5 5
5 2 2002 10 NA 10
6 3 2003 NA 2 2
7 1 2001 10 5 15
8 2 2002 NA NA NA
9 3 2003 10 2 12
10 1 2001 NA 5 5
11 2 2002 10 NA 10
12 3 2003 NA 2 2
I've tried this
finaldata<-ifelse(data$X1==NA,ifelse(data$X2==NA,NA,X2),ifelse(data
$varvendas==NA,X1,X1+X2))
But I got just NA in X3.
Anyone could help me with this?
Thanks in advance,
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
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.