Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中使用dplyr对数据子集进行多元回归_R_Regression_Dplyr - Fatal编程技术网

在R中使用dplyr对数据子集进行多元回归

在R中使用dplyr对数据子集进行多元回归,r,regression,dplyr,R,Regression,Dplyr,我有一个数据帧“DF”,上面有这个scape(): 对于每个测试,我希望使用数据的子集对“值”进行建模: 函数:Value~x+y 数据:(x,y)/00)&(x0)&(y% do(mod=lm(值~x+y,数据=,子集=foo)) 要生成预测值,请尝试以下操作: predict <- results %>% do(data.frame(pred = predict(.$mod), Test = .[["Test"]])) predict% do(data

我有一个数据帧“DF”,上面有这个
scape()

对于每个测试,我希望使用数据的子集对“值”进行建模:

  • 函数:Value~x+y
  • 数据:(x,y)/0 然后,我想使用这些模型预测“DF”中所有数据的“值”

    对于这些计算,我想使用
    dplyr
    。然而,我找不到这样做的方法。这是我最后一次尝试:

    DF %>% 
        group_by(Test) %>% 
        do({
            mod = lm(Value ~ x + y, data = (. %>% filter((x > 0) &  (x < 6) & (y > 0) & (y < 6))))
            print(mod)
            Pred <- predict(mod, .)
            data.frame(. , Pred)
        })
    glimpse()
    
    DF%>%
    组别(测试)%>%
    做({
    mod=lm(值~x+y,数据=(.%>%过滤器((x>0)&(x<6)&(y>0)&(y<6)))
    打印(mod)
    
    Pred使用
    lm
    函数的
    subset
    参数

    results <- DF %>% 
               group_by(Test) %>% 
               do(mod = lm(Value ~ x + y, data = ., subset = foo))
    
    结果%
    组别(测试)%>%
    do(mod=lm(值~x+y,数据=,子集=foo))
    
    要生成预测值,请尝试以下操作:

    predict <- results %>% 
               do(data.frame(pred = predict(.$mod), Test = .[["Test"]]))
    
    predict%
    do(data.frame(pred=predict(.$mod),Test=.[“Test”]]))
    
    过滤器保留在
    分组依据之前

    mtcars %>% 
      filter(vs==0) %>%
      group_by(cyl) %>% 
      do({ 
        mod = lm(mpg ~ wt + qsec, data = .)
        Pred <- predict(mod)
        data.frame(Pred)
      })
    

    我想我已经有了一个答案,这与我的尝试很接近:

    results <- mtcars %>% 
        group_by(cyl) %>% 
        do({ 
            mod = lm(mpg ~ wt + qsec, data = filter(., vs == 0))
            print(mod)
            Pred <- predict(mod, .)
            data.frame(. , Pred)
        })
    
    print(results, n=100)
    
    结果%
    组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别组别
    做({
    mod=lm(mpg~wt+qsec,data=filter(,vs==0))
    打印(mod)
    Pred
    
    mtcars %>% 
      filter(vs==0) %>%
      group_by(cyl) %>% 
      do({ 
        mod = lm(mpg ~ wt + qsec, data = .)
        Pred <- predict(mod)
        data.frame(Pred)
      })
    
    lapply(split(mtcars,mtcars$cyl), function(i){
      mod <- lm(mpg ~ wt + qsec, i[i$vs == 0,])
      Pred <- predict(mod)
      data.frame(Pred)
      })
    
    results <- mtcars %>% 
        group_by(cyl) %>% 
        do({ 
            mod = lm(mpg ~ wt + qsec, data = filter(., vs == 0))
            print(mod)
            Pred <- predict(mod, .)
            data.frame(. , Pred)
        })
    
    print(results, n=100)