I'm trying to make a piecewise function in R with the following arguments:
##### Rules ####
# If x from 2 to 6, x2
# If x < 2, x-5
# If x > 6, x^9
Thus, I have made this function to try to fit these arguments:
piecewise <- function(x){
return(ifelse(x < 2, x - 5,
ifelse(x > 6, x^9, x^2)))
}
I created a vector to test this out and fit it into the function:
x <- c(1,20,5,2,30)
piecewise(x)
However, it gives me the following odd output:
[1] -4.0000e+00 5.1200e+11 2.5000e+01 4.0000e+00 1.9683e+13
What is causing this issue and how do I fix it?
You can change R's print options for scientific notation by setting the scipen
"scientific notation penalty" option. Numbers with fewer digits than scipen
will be printed without scientific notation:
options(scipen = 35)
x <- c(1,20,5,2,30)
piecewise(x)
# [1] -4 512000000000 25 4 19683000000000
See ?options
for more details.