计算dplyr中组内的残差

时间:2018-01-29 00:01:39

标签: r dplyr

我正在尝试使用R计算anova中的组残差。我的数据框是

df <- data.frame(V1 = c(rep("group1", 5), rep("group2", 7)),
                 value = c(6.6,4.6,8.5,6.1,8.4,
                           10.7,10.1,10.9,10.7,15.6,13.8,15.9))

我想使用dplyr的简单方法,或者将以下两行代码组合起来

M <- df %>% group_by(V1) %>% summarise(avg = mean(value))

df$res <- ifelse(test = df$V1 == "group1", yes = (df$value - M$avg[1])^2,
                                            no = (df$value - M$avg[2])^2)

我尝试在do()中使用dplyr但没有成功。我想知道是否有一种巧妙的方法。

1 个答案:

答案 0 :(得分:3)

如果您需要继续使用原始value列以及avg,请使用mutate而不是summarize,以便将这些方法放在新列中旁边的原始值:

df %>% 
    group_by(V1) %>%
    mutate(avg = mean(value),
           res = (value - avg)^2)
相关问题