直方图中的年龄范围显示(在 R 中)
age range display in Histogram (in R)
很抱歉问了一个非常简单的问题,我是 R 的新手,我正在尝试从一组数据制作直方图,如图所示。但是,当我尝试制作直方图时,它却显示了这个。我的问题是是否可以将 x 轴标签更改为我的数据集的范围?是否可以根据范围绘制直方图?
非常感谢任何帮助。
你的向量 age
本质上是一个因子向量。
因此,与其尝试绘制它的密度,不如计算因子的每个级别并将它们绘制为直方图。
为此,您可以使用 dplyr
和 ggplot2
:
library(dplyr)
data.frame(age) %>% group_by(age) %>% count(age)
# A tibble: 3 x 2
# Groups: age [3]
age n
<fct> <int>
1 19-25 9
2 26-32 15
3 33-39 4
现在,如果您将此输出组合到 ggplot2
,您可以得到:
library(dplyr)
library(ggplot2)
data.frame(age) %>% group_by(age) %>% count(age) %>%
ggplot(aes(x = age, y = n)) + geom_bar(stat = "identity")
你会得到以下直方图:
使用基数 R
根据@RoB 的好建议,了解如何使用 R base
绘图对您来说可能很有趣。
所以你可以这样实现:
library(dplyr)
df <- data.frame(age) %>% group_by(age) %>% count(age)
barplot(df$n)
axis(side = 1, at = 1:3, labels = df$age)
编辑:基本图形图的替代方案
实际上,您甚至可以更快地绘制因子 age
的各个级别的直方图,而无需 axis
函数或 dplyr
包:
barplot(table(age))
它回答了你的问题吗?
数据
age = c("19-25","19-25","26-32","26-32","26-32","26-32","26-32","26-32","26-32",
"33-39","19-25","19-25","26-32","19-25","19-25","26-32","19-25","26-32",
"26-32","19-25","26-32","33-39","26-32","19-25","26-32","33-39","33-39","26-32")
很抱歉问了一个非常简单的问题,我是 R 的新手,我正在尝试从一组数据制作直方图,如图所示。但是,当我尝试制作直方图时,它却显示了这个。我的问题是是否可以将 x 轴标签更改为我的数据集的范围?是否可以根据范围绘制直方图?
非常感谢任何帮助。
你的向量 age
本质上是一个因子向量。
因此,与其尝试绘制它的密度,不如计算因子的每个级别并将它们绘制为直方图。
为此,您可以使用 dplyr
和 ggplot2
:
library(dplyr)
data.frame(age) %>% group_by(age) %>% count(age)
# A tibble: 3 x 2
# Groups: age [3]
age n
<fct> <int>
1 19-25 9
2 26-32 15
3 33-39 4
现在,如果您将此输出组合到 ggplot2
,您可以得到:
library(dplyr)
library(ggplot2)
data.frame(age) %>% group_by(age) %>% count(age) %>%
ggplot(aes(x = age, y = n)) + geom_bar(stat = "identity")
你会得到以下直方图:
使用基数 R
根据@RoB 的好建议,了解如何使用 R base
绘图对您来说可能很有趣。
所以你可以这样实现:
library(dplyr)
df <- data.frame(age) %>% group_by(age) %>% count(age)
barplot(df$n)
axis(side = 1, at = 1:3, labels = df$age)
编辑:基本图形图的替代方案
实际上,您甚至可以更快地绘制因子 age
的各个级别的直方图,而无需 axis
函数或 dplyr
包:
barplot(table(age))
它回答了你的问题吗?
数据
age = c("19-25","19-25","26-32","26-32","26-32","26-32","26-32","26-32","26-32",
"33-39","19-25","19-25","26-32","19-25","19-25","26-32","19-25","26-32",
"26-32","19-25","26-32","33-39","26-32","19-25","26-32","33-39","33-39","26-32")