汇总数据帧 R 中每组的输出

Summarise the output per group in dataframe R

(学生测试,请勿回复;))

大家好,

我是 R 的新手,我找不到解决问题的方法。
我的数据框中有两列:性别和年龄。我想知道每种性别的平均年龄。
我希望这个答案是 2 x 2 table.

我尝试了什么:
我可以找到两组的平均值,但 R 将它们作为列添加到我的数据框中。
另外,我知道如何用我想要的结果制作 table,但这当然不是原始数据集。

我想要的是 table 的 2x2:
性别AVG_age
男 21.2
女 21.5

下面是我的代码:

library(dplyr)

set.seed(13)

Sex <- sample(c("Male","Female"), 100, replace=TRUE, prob = c(0.53, 0.47))
Age <- sample((18:25),100,replace=T)

# Output with extra column
df_sex_age <- data.frame(Sex,Age) %>% 
  group_by(Sex) %>% 
  mutate(Avg_Age = mean(Age))
View(df_sex_age)

# What I want
data.frame(Sex = c("Male", "Female"),
                       Avg_Age = c(21.2, 21.5))

您想将 mutate() 替换为 summarize()。您还可以使用 summarise() 作为别名。 mutate() 函数计算新值并创建一个新列 return a data.frame 与原始行数相同。 summarize() 函数根据分组变量聚合数据,并创建新的汇总列。结果 data.frame 只有行数作为分组变量的唯一组合,只有分组列加上新的聚合列。

data.frame(Sex, Age) %>%
  group_by(Sex) %>%
  summarize(Ave_age = mean(Age))
# A tibble: 2 x 2
  Sex    Ave_age
  <chr>    <dbl>
1 Female    21.3
2 Male      21.6