0
我有下面的d2数据框,我想添加一个列,它是按组和标志x的平均值。但是我在mutate代码中添加了flag列,我不知道如何通过组AND标志添加平均值。使用mutate添加列dplyr然后求平均值
d = data.frame(x=c(seq(1,5,1),seq(11,15,1),100,1000),group= c(rep("A",5),rep("B",5),"A","B"))
d
d2 = d%>%
group_by(group) %>%
mutate(
U=quantile(x, 0.75) + 1.5*IQR(x),
L=quantile(x, 0.25) - 1.5*IQR(x),
flag = ifelse(x>U | x<L,1,0),
mu = mean(x)
)
as.data.frame(d2)
我已经加入了对结果应该是什么
x group U L flag mu result
1 1 A 8.5 -1.5 0 19.16667 3
2 2 A 8.5 -1.5 0 19.16667 3
3 3 A 8.5 -1.5 0 19.16667 3
4 4 A 8.5 -1.5 0 19.16667 3
5 5 A 8.5 -1.5 0 19.16667 3
6 11 B 18.5 8.5 0 177.50000 13
7 12 B 18.5 8.5 0 177.50000 13
8 13 B 18.5 8.5 0 177.50000 13
9 14 B 18.5 8.5 0 177.50000 13
10 15 B 18.5 8.5 0 177.50000 13
11 100 A 8.5 -1.5 1 19.16667 100
12 1000 B 18.5 8.5 1 177.50000 1000
note having group_by(group,flag)
returns
Error: unknown variable to group by : flag
我不确定我关注。根据你的'ifelse()',只有'flag == 1',否则'0',你想要的意思是?这并不反映你上面的'结果'栏。我认为你正在寻找的仅仅是添加到你的第一个代码'...%>%group_by(group,flag)%>%mutate(result = mean(x))' –
我觉得我很困惑。我正在查找结果向量中的结果。看看它如何按组和标志返回平均值。具有group_by(组,标志)返回和错误,因为标志尚未计算 – user3022875