This function dont run

Hi everyone,

I have this situation:

BC_partes = function(w) {
  ifelse(w < 12.38 & w >= 0, 0.3806,
         ifelse(w >= 12.38, 0.0921 + ((0.2885)/((0.0808*w)^0.4330))))
}
library(ggplot2)
library(dplyr)

DF <- data.frame(Xval = seq(0, 1500, 10), Yval = funcao_partes(seq(0, 1500,10)))

ggplot(data = DF, mapping = aes(x = Xval, y = Yval)) + geom_point()+
  geom_line(data = filter(DF, Xval < 12.38 & Xval >= 0, color = 'green')) +
  geom_line(data = filter(DF, Xval >= 12.38, color = 'red')) 
 

Whe i run this code, this mensage apear:

Error in ifelse(w >= 12.38, 0.0921 + ((0.2885)/((0.0808 * w)^0.433))) :
missing "no" argument, no default.

What i need to do?

BC_partes = function(w) {
  ifelse(w < 12.38 & w >= 0, 0.3806, 0.0921 + ((0.2885)/((0.0808*w)^0.4330)))
}

And how can i create a graphyc like my example?

All I did is use @nirgrahamuk's version of the function, use that function name within data.frame(), and move the ) in geom_line()

BC_partes = function(w) {
  ifelse(w < 12.38 & w >= 0, 0.3806, 0.0921 + ((0.2885)/((0.0808*w)^0.4330)))
}
BC_partes(3)
library(ggplot2)
library(dplyr)

DF <- data.frame(Xval = seq(0, 1500, 10), Yval = BC_partes(seq(0, 1500,10)))

ggplot(data = DF, mapping = aes(x = Xval, y = Yval)) + geom_point()+
  geom_line(data = filter(DF, Xval < 12.38 & Xval >= 0), color = 'green') +
  geom_line(data = filter(DF, Xval >= 12.38), color = 'red')

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.