The equality operator is == not =. So you need is.na(data1) == FALSE (F is a variable, and FALSE is the non-truth value), or, clearer,

ifelse(!is.na(data1), data1, data2)

Another way is

data3 <- data1
data3[is.na(data1)] <- data2[is.na(data1)]

which is more efficient but less clear.

On Tue, 10 Jan 2006, r user wrote:

I have 2 dataframes, each with 5 columns and 20 rows.
They are called data1 and data2.I wish to create a
third dataframe called data3, also with 5 columns and
20 rows.

I want data3 to contains the values in data1 when the
value in data1 is not NA.  Otherwise it should contain
the values in data2.

I have tried afew methids, but they do not seem to
work as intended.:

data3<-ifelse(is.na(data1)=F,data1,data2)

and

data3[,]<-ifelse(is.na(data1[,])=F,data1[,],data2[,])

Please suggest the “best” way.

--
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595
______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to