[英]compare observation to group average
我有一個數據框,其中包含區域列和經濟指標列。
喜歡
地區 | 指標 |
---|---|
一個 | 100 |
乙 | 50 |
C | 10 |
D | 20 |
乙 | 102 |
C | 10 |
假設 A 和 B 屬於一個組,C 和 D 屬於另一個組。 我想為比較性能創建一個新列,該列將量化一個區域與組平均值相比的表現。
例如,第 1 組的平均值為 84,第 2 組的平均值為 13.33。 所以輸出應該是
地區 | 比較指標 |
---|---|
一個 | 16 |
乙 | -34 |
C | -3.33 |
D | 6.67 |
乙 | 18 |
C | -3.33 |
我不知道在這里做什么
測試數據框
region<- c('A','B','C','D','B','C')
indicator <- c(100,50,10,20,102,10)
df <- data.frame(region,indicator)
您可以將regions
划分為不同的組。 對於每個組,用它的值減去該組的平均indicator
值,得到comparative_indicator
指標。
library(dplyr)
df %>%
mutate(groups = case_when(region %in% c('A', 'B') ~ 'group1',
region %in% c('C', 'D') ~ 'group2')) %>%
group_by(groups) %>%
mutate(comparative_indicator = indicator - mean(indicator)) %>%
ungroup
# region indicator groups comparative_indicator
# <chr> <dbl> <chr> <dbl>
#1 A 100 group1 16
#2 B 50 group1 -34
#3 C 10 group2 -3.33
#4 D 20 group2 6.67
#5 B 102 group1 18
#6 C 10 group2 -3.33
您可以根據您在輸出中的偏好刪除/重命名列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.