Error in Fitness[i] <- fit : incompatible types (from closure to logical) in subassignment type fix

Can someone please show me how to resolve this error?

#load libraries
    library(dplyr)
    library(GA)
    
    
    # create some data for this example
    a1 = rnorm(1000,100,10)
    b1 = rnorm(1000,100,5)
    c1 = sample.int(1000, 1000, replace = TRUE)
    train_data = data.frame(a1,b1,c1)
    
    
     fitness <- function(x) {
            #bin data according to random criteria
            train_data <- train_data %>%
                mutate(cat = ifelse(a1 <= x[1] & b1 <= x[3], "a",
                                    ifelse(a1 <= x[2] & b1 <= x[4], "b", "c")))
            
            train_data$cat = as.factor(train_data$cat)
            
            #new splits
            a_table = train_data %>%
                filter(cat == "a") %>%
                select(a1, b1, c1, cat)
            
            b_table = train_data %>%
                filter(cat == "b") %>%
                select(a1, b1, c1, cat)
            
            c_table = train_data %>%
                filter(cat == "c") %>%
                select(a1, b1, c1, cat)
            
            
            
            #calculate  quantile ("quant") for each bin
            
            table_a = data.frame(a_table%>% group_by(cat) %>%
                                     mutate(quant = ifelse(c1 > x[5],1,0 )))
            
            table_b = data.frame(b_table%>% group_by(cat) %>%
                                     mutate(quant = ifelse(c1 > x[6],1,0 )))
            
            table_c = data.frame(c_table%>% group_by(cat) %>%
                                     mutate(quant = ifelse(c1 > x[7],1,0 )))
            
            
            
            
            #group all tables
            
            final_table = rbind(table_a, table_b, table_c)
            # calculate the total mean : this is what needs to be optimized
            mean = mean(final_table$quant)
        }
        
        lbound <- c(80,80,80,80,0,0,0)
        ubound <- c(120,120,120,120,1,1,1)
        
        #error:
        curve(fitness, from = lbound, to = ubound, n = 1000)
        points(GA@solution, GA@fitnessValue, col = 2, pch = 19)

Thanks

I think its simply not a use case for curve which is intended for single value functions, i.e. for any x value a y value might be plottable. its not a function for plotting a function which has multidemensional inputs (i.e. the 7 you have).

I've ignored the mention of GA because the code is incomplete with respect to it

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.