You need to (re-)read ?ifelse. In ifelse(L, v1, v2), L is suppose to be a vector of logicals (or an expression that evaluates to one), and v1 and v2 are vectors of same length as L; i.e., ifelse() vectorizes if ... else .... In the first case:
r = ifelse(length(c())!=0, c(), c(1,2)) length(c()) != 0 is FALSE, so you just get 1 as the answer. In the second case, r = ifelse(length(c())==0, c(), c(1,2)) length(c()) == 0 is TRUE, so ifelse tries to return the first element of c(), which does not exist. I suspect you really want if ... else .... Andy > From: Svetlana Eden > > Today is a good day for asking question, I guess. > > > c() > NULL > > > > length(c())==0 > [1] TRUE > > > > r = ifelse(length(c())!=0, c(), c(1,2)) ### OK > > r = c() ### OK > > r = ifelse(length(c())==0, c(), c(1,2)) ### why this is > not OK (given > > the previous two)? > Error in "[<-"(`*tmp*`, test, value = rep(yes, length = > length(ans))[test]) : > incompatible types > > > > c() == NULL > logical(0) > > > > r = ifelse(c()==NULL, c(), c(1,2)) ### why this line does not > > r ### result in error - > logical(0) ### 'c()==NULL' is not TRUE > and not FALSE ? > > > > > > -- > Svetlana Eden Biostatistician II School of Medicine > Department of Biostatistics Vanderbilt > University > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > ------------------------------------------------------------------------------ Notice: This e-mail message, together with any attachments,...{{dropped}} ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html