Hi Duncan, Mark and all, Thanks for the suggestion. I ve tried the below suggestion.
I got this error now Error in `[<-.data.frame`(`*tmp*`, , x, value = NULL) : new columns would leave holes after existing columns Its weird as I try to assign NULL manually and its not complaining anything. When I put that on a loop, it gives me the above error. Please advise. Thanks. On Fri, Oct 3, 2008 at 1:57 PM, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > On 02/10/2008 10:07 PM, Jason Lee wrote: > >> Hi, >> >> I came across the below error when I try to do ifelse condition:- >> >> Error in "[<-"(`*tmp*`, test, value = rep(yes, length = >> length(ans))[test]) >> : >> incompatible types >> >> What I am trying to accomplish is :- >> >> for(x in 1:ncol(filterpred)){ >> >> sumno<-sum(filterpred[no,x]) >> sumyes<-sum(filterpred[yes,x]) >> >> ifelse(sumno==0 && sumyes !=0, >> filterpred[,x]<-NULL,filterpred[,x]<-filterpred[,x]) >> } >> >> Anything wrong here? >> > > You want to use if .. else .., not ifelse. ifelse() is a function that > takes a vector of logical values, and produces a vector of answers, not a > way to control program flow. > > It almost never makes sense to use && in ifelse(), because && always > produces a scalar, not a vector. I think what you want is to replace the > ifelse() call with > > if (sumno==0 && sumyes !=0) { > filterpred[,x]<-NULL > } else { > filterpred[,x]<-filterpred[,x]) > } > > Duncan Murdoch > [[alternative HTML version deleted]] ______________________________________________ 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.