R语言 如何在R数据框架中计算组的平均数
在这篇文章中,我们将看到如何在R编程语言中计算DataFrame中组的平均值。
这可以通过两种方法完成 。
- 使用聚合函数
- 使用dplyr包
数据集的创建: 首先,我们创建一个数据集,这样以后我们就可以应用上述两种方法,找到按组计算的平均值。
# GFG dataset name and creation
GFG <- data.frame(
Category = c ("A","B","C","B","C","A","C","A","B"),
Frequency= c(9,5,0,2,7,8,1,3,7)
)
# Prints the dataset
print(GFG)
所以,你可以看到上面的代码是用来创建一个名为 “GFG “ 的数据集 。
因此,当你在R编译器中运行上述代码时,会显示出一个如下的输出表格
应用这两种方法后,我们需要得到如下输出 。
在我们讨论这些方法之前,首先让我们知道我们是如何得到输出值 的。
- 在表1中,我们有两列命名为类别和频率。
- 在类别中,我们有一些重复的变量 A、B和C。
- A组数值(9,8,3) , B组数值(5,2,7) 和 C组数值(0,7,1) 取自 频率 列。
- 因此,为了找到 平均值 ,我们有一个公式
平均值=条款之和/条款数量
- 因此,每组(A、B、C)的 平均数 是
总和 。
- A=9+8+3=20
- B=5+2+7=14
- C=0+7+1=08
术语的数量 。
- A重复3次
- B重复了3次
- C重复了3次
各组的平均数(A、B、C) 。
- A(平均值)=总和/术语数=20/3=6.67
- B(平均) = 总和/术语数 = 14/3 = 4.67
- C(平均值) = 总和/术语数 = 8/3 = 2.67
方法1: 使用聚合函数
聚合函数。将数据分割成子集,计算每个子集的汇总统计量,并以一种方便的形式返回结果。
语法: aggregate(x = dataset_Name , by = group_list, FUN = any_function)
聚合函数的基本R语法
现在,让我们用聚合函数对我们的数据进行求和。
GFG <- data.frame(
Category = c ("A","B","C","B","C","A","C","A","B"),
Frequency= c(9,5,0,2,7,8,1,3,7)
)
# Specify data column
aggregate(x= GFGFrequency,
# Specify group indicator
by = list(GFGCategory),
# Specify function (i.e. mean)
FUN = mean)
输出 。
在上述聚合函数中,它需要三个参数
- 首先是数据集名称,在我们的例子中是 ” GFG “。
- 第二是列名,我们需要将哪些数值做成不同的组,在我们的例子中是 Category列, 它被分成三组 (A、 B、C)。
- 在第三个参数中,我们需要提到我们需要对形成的组( A、B、C )执行哪个函数(如 平均值、和等) 。
方法2: 使用dplyr包
dplyr是一个软件包,它提供了一套在R中有效操作数据集的工具。
dplyr包中的方法 。
- mutate() 添加新的变量,这些变量是现有变量的函数。
- select() 根据变量的名称来挑选变量。
- filter() 根据其数值挑选案例。
- summarise() 将多个数值减少到一个单一的摘要。
- arrange() 改变行的顺序。
安装这个库 。
install.packages("dplyr")
加载这个库 。
library("dplyr")
代码 。
# load dplyr library
library("dplyr")
GFG <- data.frame(
Category = c ("A","B","C","B","C","A","C","A","B"),
Frequency= c(9,5,0,2,7,8,1,3,7)
)
# Specify data frame
GFG%>%
# Specify group indicator, column, function
group_by(Category) %>%
summarise_at(vars(Frequency),
list(name = mean))
输出 。
在上面的代码中,我们首先取名为 “GFG “的数据集。通过 group_by() 方法,我们在本例中形成组(A、B、C)。 summaryise_at() 有两个参数,首先是一个列,在这个列上应用第二个参数给出的操作。