I have Julia Symbols
with the name of the columns and I want to interpolate those to R (using RCall) to run a R’s lm()
. I found and alternative using R’s as.formula
to construct the formula from a string. But I was waiting Julia Symbol
s to be interpolated to R lm(data=$df, $(y) ~ $(x))
:
R> fit <- lm(data=$df, actual_col ~ global_kl) # OK
R> fit <- lm(data=$df, $(y) ~ $(x)) # NOT OK
Error in model.frame.default(formula = `#JL`$y ~ `#JL`$x, data = `#JL`$df, :
object is not a matrix
R> fit <- lm(data=$df, $(string(y)) ~ $(string(x))) # NOT OK
Warning in model.response(mf, "numeric") : NAs introduced by coercion
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
R> fit <- lm(data=$df, as.formula($(string(y) * " ~ " * string(x)))) # Alternative
Is this behaviour correct?
Best,