如何在R中按类别应用df中包含2×2变量多元回归的函数?

如何在R中按类别应用df中包含2×2变量多元回归的函数?,r,function,regression,apply,lapply,R,Function,Regression,Apply,Lapply,我的df是这样的: ind1 <- rnorm(99) ind2 <- rnorm(99) ind3 <- rnorm(99) ind4 <- rnorm(99) ind5 <- rnorm(99) dep <- rnorm(99, mean=ind1) group <- rep(c("A", "B", "C"), each=33) df <- data.frame(dep, group, ind1, ind2, ind3, ind4, ind5)

我的df是这样的:

ind1 <- rnorm(99)
ind2 <- rnorm(99)
ind3 <- rnorm(99)
ind4 <- rnorm(99)
ind5 <- rnorm(99)
dep <- rnorm(99, mean=ind1)
group <- rep(c("A", "B", "C"), each=33)
df <- data.frame(dep, group, ind1, ind2, ind3, ind4, ind5)

ind1这里的问题是公式需要列名而不是值

functions <- function(dat, x, y) {

   form1 <- paste0("dep ~ ", x, " + ", y)
   form2 <- paste0("dep ~ ", "I(", x, "*", y, ")")
   form3 <- paste0("log(dep) ~", "I(log(", x, "+1)^2) + I(log(", y, "+1)^2)")
    eq1 <- lm(form1, data = dat)
    eq2 <-  lm(form2, data = dat)
    eq3 <- lm(form3, data = dat)
    list1 <- list(eq1, eq2, eq3)
    names(list1) <- paste0("mod", 1:3)
    return(list1)

}



out <- lapply(split(df, df$group), function(x) functions(x,  "ind1",  "ind2"))

非常感谢。在本例中,它表示“函数中的错误(x),“ind1”,“ind2”):未使用的参数(“ind2”)”@SunRise抱歉,我没有得到错误。你在博文中使用了相同的例子吗谢谢!我正在使用我的原始数据。在这个公式中我应该如何处理NANS?@SunRise你的意思是
NA
syes!这是NA s。我的原始数据的值小于1。当它们取log时,它们会变得更低,有时是负值。为了解决这个问题,我在x&y中加了1,但它仍然存在问题
out <- lapply(split(df, df$group), function(x) functions(x$ind1, x$ind2))
lapply(out, summary)
functions <- function(dat, x, y) {

   form1 <- paste0("dep ~ ", x, " + ", y)
   form2 <- paste0("dep ~ ", "I(", x, "*", y, ")")
   form3 <- paste0("log(dep) ~", "I(log(", x, "+1)^2) + I(log(", y, "+1)^2)")
    eq1 <- lm(form1, data = dat)
    eq2 <-  lm(form2, data = dat)
    eq3 <- lm(form3, data = dat)
    list1 <- list(eq1, eq2, eq3)
    names(list1) <- paste0("mod", 1:3)
    return(list1)

}



out <- lapply(split(df, df$group), function(x) functions(x,  "ind1",  "ind2"))
lapply(out, function(x) lapply(x, summary))