R语言 如何按组计算汇总统计
在这篇文章中,我们将讨论如何在R编程语言中按组计算汇总统计。
汇总统计将从给定的数据中返回以下信息。
- Min – 给定数据中的最小值
- 第一四分位数 – 数据中的第一四分位数
- 中位数– 数据的中位数
- Mean – 数据的平均数
- 第三四分位数– 数据中的第三四分位数
- 最大值- -给定数据中的最大值
让我们来创建数据框架
# create dataframe with 4 columns
data=data.frame(name=c("ojaswi","bobby","rohith","gnanesh","sireesha"),
subjects=c("java","java","python","cpp","python"),
age=c(21,23,21,20,19),
id=c(1,2,3,4,5))
# display
data
输出 。
方法1:使用tapply()函数
在这种方法中,为了计算各组的汇总统计,用户需要简单地调用内置的tapply()函数,该函数的汇总参数与要计算汇总统计的给定数据一起传递,在这种方法下,用户将把一个汇总函数作为R语言的第三个参数。
语法:
tapply(datacolumn_name, datagroup_column, summary)
参数 。
- data是输入的数据框架
- column_name是要汇总的列
- group_column是要分组的列
- summary是要得到的汇总数据
例子 。
在这个例子中,我们将使用R语言中的tapply()函数和summary参数,通过对受试者进行年龄分组来显示一个摘要。
# create dataframe with 4 columns
data=data.frame(name=c("ojaswi","bobby","rohith","gnanesh","sireesha"),
subjects=c("java","java","python","cpp","python"),
age=c(21,23,21,20,19),
id=c(1,2,3,4,5))
# display summary by grouping subjects with age
tapply(dataage, datasubjects, summary)
输出 。
方法2:使用purrr包
在这个方法中,用户必须首先安装并导入purr包,然后用户必须按照下面的语法在R语言中计算给定数据组的汇总统计。
在R控制台安装和导入purr包的语法 。
install.package('purr')
library('purr')
语法:
data %>% split(.$group_column) %>%map(summary)
其中。
- data是输入的数据框
- group_column是要分组的列
- summary是获取摘要的函数
例子 。
在这个例子中,我们借助于R语言中的purr包,通过对主题进行分组来显示摘要。
# load the library
library("purrr")
# create dataframe with 4 columns
data=data.frame(name=c("ojaswi","bobby","rohith","gnanesh","sireesha"),
subjects=c("java","java","python","cpp","python"),
age=c(21,23,21,20,19),
id=c(1,2,3,4,5))
# display summary by grouping subjects
data %>% split(.$subjects) %>%map(summary)
输出 。
方法3:使用dplyr包
在这种方法中,用户必须在工作的R控制台中安装并导入dplyr包,然后按照下面的语法,使用group_by和sumarize()函数,在R语言中按组获得摘要。
在R控制台安装和导入dplyr包的语法 。
install.package('dplyr')
library('dplyr')
语法:
data %>% group_by(group_column) %>% summarize(min = min(column),
q1 = quantile(column, 0.25),
median = median(column),
mean = mean(column),
q3 = quantile(column, 0.75),
max = max(column))
参数 。
- min(column) – 获得该列的最小值
- max(列) – 得到该列的最大值
- median(column) – 获得该列的中位数
- mean(column) – 得到该列的平均数
- quantile(umn, 0.25) – 得到该列的第一个四分位数
- quantile(column, 0.75) – 得到该列的第三个四分位数
例子 。
在这个例子中,我们使用R编程语言中的dplyr包,通过对受试者的年龄列进行分组,来显示一个摘要。
# load the library
library("dplyr")
# create dataframe with 4 columns
data=data.frame(name=c("ojaswi","bobby","rohith","gnanesh","sireesha"),
subjects=c("java","java","python","cpp","python"),
age=c(21,23,21,20,19),
id=c(1,2,3,4,5))
# display summary by grouping subjects with age column
data %>% group_by(subjects) %>% summarize(min = min(age),
q1 = quantile(age, 0.25),
median = median(age),
mean = mean(age),
q3 = quantile(age, 0.75),
max = max(age))
输出 。