Greetings R Community,
 
I am working with the ifelse function and it is returning something unexpected. 
 In the code the line with the MODE1 assignment the output is a vector [1] 4 5 
6  but when I put the MODE1 object into the ifelse function [R}'s output for 
MODE1 is the first number from the string (4).  Why is this?  Given the 
supplied vector of x I would assume both the MODE1 and ifelse() lines to return 
the same result.  I would like the ifelse to return the entire vector [1] 4 5 6 
as in the previous line.
 
OS: Win7
R version 2.14 beta


#=======================================================================
#                                        Beginning of code
#=======================================================================
x<-c(2,3,4,4,5,5,6,6,8,10)
  
df<-as.data.frame(table(x))       
df<-df[order(df$Freq),]         
m<-max(df$Freq)        
(MODE1<-as.vector(as.numeric(as.character(subset(df,Freq==m)[,1]))))
ifelse(sum(df$Freq)/length(df$Freq)==1,warning("No Mode: Frequency of all 
values is 1", call. = FALSE),MODE1)
#=======================================================================
#                                             End of code
#=======================================================================
 
                                                R Console Output
> (MODE1<-as.vector(as.numeric(as.character(subset(df,Freq==m)[,1]))))
[1] 4 5 6
> ifelse(sum(df$Freq)/length(df$Freq)==1,warning("No Mode: Frequency of all 
> values is 1", call. = FALSE),MODE1)
[1] 4
 
Thank you in advance,
Tyler                                     
        [[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.

Reply via email to