在RStudio中,基于另外两列数据,找到一个列的平均值。

4

我目前有一个数据框,其中有三列(城市、州和收入)。下面是一个数据的示例...

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

你可以看到,这里有城市重复的情况。由于邮编/城市区域的收入不同,Addison, IL会有多个。

我想要计算给定城市和州的所有收入的平均值。在这个例子中,我想要所有Addison, IL的平均值,但不包括Addison, Texas。

我想要的结果是(在这个例子中)

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

我尝试了这个:

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

但是它给了我所有Addison的平均值,包括德克萨斯州...

有没有一种方法可以根据城市和州获取收入列的平均值?

我对编码还不是很熟悉,所以我不确定这是否是一个简单的问题。但我将非常感谢任何帮助。

2个回答

3
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

0
这是一个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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接