簡體   English   中英

RStudio基於其他2列求平均值

[英]Finding Average of One Column Based on 2 Other Columns RStudio

我目前有一個包含三列(城市,州和收入)的數據框,我在下面寫了一個數據示例...

City     State     Income 
Addison  Illinois   71,000
Addison  Illinois   101,000
Addison  Illinois   81,000
Addison  Texas      74,000

如您所見,有重復的城市。 伊利諾伊州有多個Addison,因為收入因城市的郵政編碼不同而有所不同。

我想取給定城市和州所有收入的平均值。 在此示例中,我想要所有Addison IL的平均值,但不包括德克薩斯州Addison的平均值。

我正在尋找這個(在這個給定的例子中)

City    State    MeanIncome
Addison Illinois  84,333
Addison Texas     74,000

我嘗試了這個:

Income_By_City <- aggregate( Income ~ City, df, mean ) 

但這給了我所有艾迪生的平均值,包括德克薩斯州...

有沒有一種方法可以根據“城市”和“州”來計算“收入”列的平均值?

我對編碼還很陌生,所以我不確定這是否是一個簡單的問題。 但我將不勝感激。

df <- data.frame(City = c("Addison", "Addison", "Addison", "Addison"), State = c("Illinois", "Illinois", "Illinois", "Texas"), Income = c(71000, 101000, 81000, 74000))

library(dplyr)
df %>%
   group_by(City, State) %>%
   summarise(MeanIncome=(mean(Income)))


#     City     State   MeanIncome
#1 Addison  Illinois   84333.33
#2 Addison     Texas   74000.00

這是dplyr解決方案:

library(tidyverse)

df <- tribble(
~City,      ~State,      ~Income, 
"Addison",  "Illinois",  71000,
"Addison",  "Illinois",  101000,
"Addison",  "Illinois",  81000,
"Addison",  "Texas",     74000
)

df %>% 
  group_by(City, State) %>% 
  mutate(AverageIncome = mean(Income))

# A tibble: 4 x 4
# Groups:   City, State [2]
     City    State Income AverageIncome
    <chr>    <chr>  <dbl>         <dbl>
1 Addison Illinois  71000      84333.33
2 Addison Illinois 101000      84333.33
3 Addison Illinois  81000      84333.33
4 Addison    Texas  74000      74000.00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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