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