汇总数据帧 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
(学生测试,请勿回复;))
大家好,
我是 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