0

以下代码计算三个因变量中的每一个的一组回归系数,这些因变量在两组中的每一个的六个自变量的集合上回归,并且工作正常。

library(tidyverse)
library(broom)
n  <- 20
df4  <- data.frame(groupingvar= sample(1:2, size = n, replace = TRUE),
                   y1 = rnorm(n,10,1), y2=rnorm(n,100,10), y3=rnorm(n,1000,100),
                   x1=  rnorm(n,10,1), x2=rnorm(n,10,1), x3=rnorm(n,10,1),
                   x4=rnorm(n,10,1), x5=rnorm(n,10,1), x6=rnorm(n,10,1))
df4 <- arrange(df4,groupingvar)

regs <- df4 %>% group_by(groupingvar) %>%
  do(fit = lm(cbind(y1,y2,y3) ~ . -groupingvar, data = .))
coeffs <- tidy(regs, fit)

我想使用 spark 数据框而不是 R 数据框来复制相同的逻辑。例如,类似于以下内容:

library(sparklyr)
sc <- spark_connect(master = "local", version = "2.0.0")
sparkdf4ref <- sdf_copy_to(sc, df4, "sparkdf4", overwrite=T)

sparkdf4refregs <- sparkdf4ref %>% group_by(groupingvar) %>%
  do(sparkfit = lm(cbind(y1,y2,y3) ~ . -groupingvar, data = .))
coeffs <- tidy(sparkdf4refregs, sparkfit)

此代码失败主要是因为我需要使用“ml_linear_regression”而不是“lm”,但即使进行替换它也会失败。如果我保留“ml_linear_regression”,但删除 cbind() 并仅保留一个因变量,则计算一些系数,尽管 broom::tidy 无法获取系数。

有没有办法在 sparklyr 框架中产生这个结果,或者如果需要的话,用另一种方法?

4

0 回答 0