在这个简短的教程中,你将学习如何在R中找到五数汇总统计。具体来说,在这篇文章中我们将计算。
- 最小值
- 下铰链
- 中位数
- 上铰链
- 最大值
现在,我们还将使用boxplot来可视化这五个数字的汇总统计。首先,我们将学习如何计算这五个汇总统计中的每一个,然后学习如何使用一个单一的函数来直接获得所有的统计。
五位数汇总统计
要求
为了学习这个R教程,你将需要安装readxl和ggplot2。安装这些到r包的最简单的方法是使用install.packages()
函数。
install.packages(c("readxl", "ggplot"))
Code language: R (r)
注意,这两个包都是Tidyverse的一部分。这意味着你在安装Tidyverse的时候会得到它们,以及很多其他的包。例如,你可以使用dplyr等包来重命名列,在R中删除列,合并两列,以及选择列,也是如此。
在进入使用R寻找五数汇总统计的6个步骤之前,我们将得到一些问题的答案,但是。
什么是R语言中的五数汇总?
正如你可能已经理解的那样,五数汇总统计是:1)最小值,2)下铰链,3)中位数,4)上铰链,和5)最大值。五数汇总是探索你的数据集的一种快速方法。
如何在R中找到五数总结?
在R中找到五数汇总统计的绝对最简单的方法是使用fivenum()
函数。例如,如果你有一个名为 "A "的数字向量,你可以运行以下代码:fivenum(A)
以获得五个数字汇总。
现在我们知道什么是五数汇总,我们可以继续学习计算五数汇总统计的简单步骤。
在R中查找五数汇总统计-6个简单的步骤
在本节中,我们准备通过6个简单的步骤,利用R统计环境计算五数统计。回顾一下:第一步是导入数据集(例如,从xlsx文件中导入)。第二,我们计算最小值,然后,在第三步,得到下铰链。在第四步,我们得到中位数。在第五步中,我们得到上铰链,然后,在第六步,也就是最后一步,我们得到最大值。
第一步:导入你的数据
下面是如何使用readxl包在R中读取一个.xslx文件。
library(readxl)
dataf <- read_excel("play_data.xlsx", sheet = "play_data",
col_types = c("skip", "numeric",
"text","text", "numeric",
"numeric", "numeric"))
head(dataf)
Code language: JavaScript (javascript)
我们可以看到,在这个例子的数据集中,只有一列含有数字数据(即RT列)。在接下来的步骤中,我们将取这一列的最小值。
第2步:获取最小值
下面是如何在R中获取一列的最小值。
min.rt <- min(dataf$RT, na.rm = TRUE)
Code language: JavaScript (javascript)
请注意我们是如何使用min()
,并将数据框架和列(即RT)作为第一个参数的函数。第二个参数我们设置为TRUE,因为我们在列中有一些缺失的值。最后,我们用R中的$运算符来选择一个列。另一方面,如果我们使用 dplyr,我们可以使用select()函数。也就是说,让我们继续前进,获得最大值。
第3步:获取下限铰链
下面是我们如何获得下铰链。
# Lower Hinge:
RT <- sort(dataf$RT)
lower.rt <- RT[1:round(length(RT)/2)]
lower.h.rt <- median(lower.rt)
Code language: PHP (php)
注意,我们是如何开始只选择响应时间(即RT列)并对数值进行排序的。 其次,我们得到响应时间的下半部分,然后,我们通过计算这个向量的中位数得到下铰链。
第四步:计算中位数
为了计算中位数,我们可以使用median()
函数。
# Median
median.rt <- median(dataf$RT, na.rm = TRUE)
Code language: PHP (php)
同样,我们使用了na.rm
参数(TRUE
),因为在数据集中有一些缺失值。当然,如果你的数据没有任何缺失值,你可以不使用这个参数。
第五步:获取上铰链
下面是如何获得上铰链的方法。
# Upper Hinge
RT <- sort(dataf$RT)
upper.rt <- RT[round((length(RT)/2)+1):length(RT)]
upper.h.rt <- median(upper.rt)
Code language: PHP (php)
类似于我们得到下铰链的方法,我们首先对RT列进行排序。然后,我们得到上半部分并计算其中位数。
第6步:获取最大值
我们可以通过使用max()
函数得到最大值。
# Max
max.rt <- max(dataf$RT, na.rm = TRUE)
Code language: PHP (php)
同样,我们使用美元符号操作符选择了RT列,并删除了缺失的值。下面是输出结果。
请注意,当样本量为奇数时,下限和上限的铰链与第一和第三四分之一相同。如果是这种情况,获得下限和上限的一个更简单的方法是使用quantile()
函数。然而,在上面的例子数据中,我们有相等数量的观察值(抛开缺失值)。
5-Nummer汇总统计表
在这一节中,我们要把所有的东西放在一起,这样我们就可以得到一个比较漂亮的输出。
fivenumber <- cbind(min.rt, lower.h.rt,
median.rt, upper.h.rt,
max.rt)
colnames(fivenumber) <- c("Min", "Lower-hinge",
"Median", "Upper-hinge", "Max")
fivenumber
Code language: CSS (css)
正如你在上面的代码块中所看到的,我们用cbind()
函数将不同的对象合并成一个。然后,我们给合并后的对象起了更好的列名。在下一节中,我们将看到已经有一个函数可以在R中计算五数统计,基本上只需一行代码。
用fivenum()函数在R中查找五数汇总统计数字
下面是如何用fivenum()
函数在R中找到五数汇总统计。
# Five summary with R's fivenum()
fivenum(dataf$RT)
Code language: PHP (php)
相当简单。我们只是选择了包含我们数据的那一列。同样,我们使用$运算符来获得RT列,并对其使用fivenum()
函数。请注意,fivenum()
函数在默认情况下会删除任何缺失值。
正如你在上面的输出中所看到的,我们没有得到任何列的名称,但是五个数字的汇总统计被排序如下:最小、下铰链、中位数、上铰链和最大。我们可以看到,我们得到的数值与6步法中的相同。
在下一节中,我们将在R中创建一个显示五数汇总统计的boxplot。
用Bowxplot可视化5个数字的汇总统计
下面是我们如何在R语言中用一个博列表来可视化Tukey的5个数字汇总统计。
library(ggplot2)
df <- data.frame(
x = 1,
ymin = fivenumber[1],
Lower = fivenumber[2],
Median = fivenumber[3],
Upper = fivenumber[4],
ymax = fivenumber[5]
)
ggplot(df, aes(x)) +
geom_boxplot(aes(ymin=ymin, lower=Lower,
middle=Median, upper=Upper, ymax=ymax),
stat = "identity") +
scale_y_continuous(breaks=seq(0.2,0.8, 0.05)) +
# Style the plot bit
theme_bw() +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank()
) +
# After this is just to annotate the plot and can be removed
# Min
geom_segment(aes(x = 1, y = ymin, xend = 0.95, yend = ymin), data = df) +
annotate("text", x = 0.93, y = df$ymin, label = "Min") +
# Lower-hinge
geom_segment(aes(x = 0.60, y = Lower, xend = 0.60, yend = Lower-0.05), data = df) +
annotate("text", x = 0.60, y = df$Lower-0.06, label = "Lower-hinge") +
# Median
annotate("text", x = 1, y = df$Median + .012, label = "Median") +
# Upper-hinge
geom_segment(aes(x = 1.40, y = Upper, xend = 1.40, yend = Upper+0.05), data = df) +
annotate("text", x = 1.40, y = df$Upper+0.06, label = "Upper-hinge") +
# Max
geom_segment(aes(x = 1, y = ymax, xend = 1.05, yend = ymax), data = df) +
annotate("text", x = 1.07, y = df$ymax, label = "Max")
Code language: R (r)
在上面的例子中,我们没有深入研究细节。然而,我们确实从我们创建的第一个对象中创建了一个数据框架,然后我们使用ggplot()
和ggplot_boxplot()
来创建boxplot。请注意我们是如何使用aes()
函数并将在数据框架中发现的不同值设置为参数的。这里ymin和ymax分别是最小值和最大值。注意我们还改变了y轴上的刻度数。这里我们用seq()函数来生成一个数字序列。该图有些风格,画段(线)和添加文本的代码可以跳过,当然,如果你只想在R中对五个汇总统计进行可视化。
5个数字的汇总统计的Bowxplot
总结
在这篇文章中,你已经学会了在R中获得五个汇总统计的2种方法。1)最小值,2)下铰链,3)中位数,4)上铰链,以及5)最大值。在第一种方法中,我们分别计算了这些汇总统计量中的每一个。此外,我们还学会了如何使用方便的fivenum()函数来获得相同的值。在最后一节中,我们从这五个汇总统计中创建了一个boxplot。希望你能学到有价值的东西。如果你做到了,请在你的项目和报告中链接到这篇博文,在你的社交媒体账户上分享,或者在下面留言。