0
아래의 d2 데이터 프레임이 있으며 그룹 및 플래그별로 x의 평균 인 열을 추가하고 싶습니다. 그러나 mutate 코드에 플래그 열을 추가하는 중 그룹 AND 플래그로 평균을 더하는 방법을 모르겠습니다.돌연변이를 사용하여 평균을 계산하는 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)
나는 간단하게 다음 mutate()
을 초기 작업 후 체인에 group_by(group, flag)
을 추가하고 결과가
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'' 일 때만 평균값을 원하십니까? 이것은 위의'result' 컬럼을 반영하지 않습니다. 나는 당신이 찾고있는 것이 단순히 첫 번째 코드에 추가하는 것이라고 생각한다. ... % group_by (group, flag) %> % mutate (result = mean (x))' –
나는 혼란 스럽다고 생각한다. 결과 벡터에서 결과를 찾고 있습니다. 그것이 그룹과 깃발에 의하여 평균을 어떻게 돌려 보내는 지보십시오. 플래그가 아직 계산되지 않았으므로 group_by (group, flag)가 반환하고 오류가 발생합니다. – user3022875