我目前有一个包含三列(城市,州和收入)的数据框我写下了以下数据的示例...
City State Income
Addison Illinois 71,000
Addison Illinois 101,000
Addison Illinois 81,000
Addison Texas 74,000
正如你所看到的那样,有重复的城市。有几个Addison,IL,因为收入因城市的邮政编码/区域而异。
我想取一个城市和州的所有收入的平均值。在这个例子中,我想要所有Addison IL的平均值,但不包括德克萨斯州Addison。
我正在寻找这个(在这个给定的例子中)
City State MeanIncome
Addison Illinois 84,333
Addison Texas 74,000
我试过了:
Income_By_City <- aggregate( Income ~ City, df, mean )
但它给了我所有艾迪生的平均值,包括得克萨斯......
有没有办法根据城市和州来取得收入栏的平均值?
我对编码很新,所以我不确定这是一个简单的问题。但我很感激能得到的任何帮助。
答案 0 :(得分: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
答案 1 :(得分: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