I'm not sure what your functions do to rescale, but in general to rescale a function you can combine your formulas into one equation:
(old_variable - old_min) / (old_max - old_min) = (new_variable - new_min) / (new_max - new_min)
You can then solve for what you need, using the values you indicated
(old_variable - 1)/(10 - 1) = (new_variable - 0) / (1 - 0)
(old_variable/(10-1))*1 = new_variable
Express as a function:
scale_function <- function(old_variable){
(old_variable/(10-1))*1
}
You want to log transform, so you can use results of the above function:
log(scale_function(old_variable) / (1 - scale_function(old_variable))
So, you can output the scale_function, then plug into this new log function, create a log function that uses scale_function as an argument, or incorporate the log function into the scale_function, which is here:
scale_log_function <- function(old_variable){
log(((old_variable/(10-1))*1) / (1 - (old_variable/(10-1))*1))
}
Then it looks like you want to input a column from your data. I don't think you want to lapply it because it looks like you want to return the data in that same column and is not needed, so I think you'd put your vector into scale_log_function:
test[c(12)] <- scale_log_function(test[c(12)])
Of course, as others noted, you'll have to deal with problem cases, like log 0.