我正在尝试使用 R 计算方差方差中的组内残差。我的数据框是
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)
我试图在dplyr
中使用do()
但没有成功。我想知道是否有一种巧妙的方法可以做到这一点。
如果您需要继续使用原始value
列和avg
,请使用mutate
而不是summarize
,以便将平均值放在原始值旁边的新列中:
df %>%
group_by(V1) %>%
mutate(avg = mean(value),
res = (value - avg)^2)