display results for loop in one row in r

Viewed 23
intType=function(x) 
{
 for (i in 1:length(x)) if (round(x[i])!=x[i]) {print('Non-integer')} 
                        else if (x[i]%%2 != 0) {print('Odd')} 
                        else {print('Even')}
}

intType(c(1.1, 2, 3))

If I run the above code I get:

[1] "Non-integer"
[1] "Even"
[1] "Odd"

Is there any way to display in one row"? Like this: "Non-integer" "Even" "Odd"

1 Answers

We can use ifelse

intType=function(x) 
{
  ifelse(round(x)!=x, 'Non-integer',
                        ifelse(x%%2 != 0, 'Odd', 'Even'))
                        
}

-testing

> intType(c(1.1, 2, 3))
[1] "Non-integer" "Even"        "Odd"       
Related