简体   繁体   中英

Working with dataframe variable names passed as arguments to the R function

I want to fit a statistical model (eg a linear one) for arbitrary variables from the dataframe passed as arguments to a function.

Eg

myLm = function(x,y) {
    fit = lm(y~x, data=mtcars)}
myLm("cyl","mpg")

But this does not work. How do I do that correctly?

You have to pass a formula object to lm function. But you give characters in input of myLM .

You can change your function in this way

myLm = function(x,y) {
    fit = lm(formula(paste(x,"~",y)), data=mtcars)
}
myLm("cyl","mpg")

You still give characters input but they are converted inside your function myLM

Why don't you pass a formula object directly:

myLm <- function(f)
    lm(f, data=mtcars)

myLm(mpg ~ cyl)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM