簡體   English   中英

將觀察結果與組平均值進行比較

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM