R 从原始数据创建数据组并进行打印?
我试图用我的原始数据为我的“年龄”变量创建分组数据。参与者的年龄范围为12-66岁,但我将参与者分为以下几组:R 从原始数据创建数据组并进行打印?,r,R,我试图用我的原始数据为我的“年龄”变量创建分组数据。参与者的年龄范围为12-66岁,但我将参与者分为以下几组: 12-20 21-28 29-37 38-46 47-55 55-66 也是在我尝试使用这个新的分组数据并将其实现为直方图之后。谢谢我们可以使用cut创建基于中断的组,使用表格获取计数,并在基本R中使用条形图进行绘图 grp <- cut(age, breaks = c(-Inf, 12, 21, 29, 38, 47, 55, 66, Inf)) barplot(table
- 12-20
- 21-28
- 29-37
- 38-46
- 47-55
- 55-66
也是在我尝试使用这个新的分组数据并将其实现为直方图之后。谢谢我们可以使用
cut
创建基于中断的组
,使用表格
获取计数,并在基本R
中使用条形图
进行绘图
grp <- cut(age, breaks = c(-Inf, 12, 21, 29, 38, 47, 55, 66, Inf))
barplot(table(grp))
grp我们可以使用cut
创建基于中断的组,使用表格
获取计数,并使用基本R
中的条形图
进行绘图
grp <- cut(age, breaks = c(-Inf, 12, 21, 29, 38, 47, 55, 66, Inf))
barplot(table(grp))
grp我认为您需要的是条形图,而不是直方图。
在akrun的帮助下,这里是另一个可能的解决方案。感谢akrun的澄清(见评论):
库(dplyr)
图书馆(GG2)
#10至80岁之间1000个年龄段的随机数据
种子(24)
df=12&age=21&age=29&age=38&age=47&age=56&age%
计数(年龄组)
#绘制条形图
ggplot(数据=df1,aes(x=年龄组,y=n))+
几何图形栏(stat=“identity”)
我认为您需要的是条形图,而不是直方图。
在akrun的帮助下,这里是另一个可能的解决方案。感谢akrun的澄清(见评论):
库(dplyr)
图书馆(GG2)
#10至80岁之间1000个年龄段的随机数据
种子(24)
df=12&age=21&age=29&age=38&age=47&age=56&age%
计数(年龄组)
#绘制条形图
ggplot(数据=df1,aes(x=年龄组,y=n))+
几何图形栏(stat=“identity”)
@TarJae默认情况下,这只是cut
格式。您可以使用labels=c(((12,20)”,…,“(38,47)”,…)对其进行自定义@TarJae您可以检查cut的源代码。默认值paste0(如果(右)”(“其他”[”,ch.br[-nb],“,”,ch.br[-1L],如果(右)”)
谢谢你,akrun。我本想以同样的方式向用户15344033建议一个类似的答案,但由于出现了中断,我停止了。如果你看一下中断,每个栏都包含了之前栏的最后一个数字:例如,栏2包含21个,栏3包含21个。也许我错了,或者我忽略了什么。无论如何,谢谢你。每次都很完美!!@TarJae原因是在cut
中,还有其他参数include.lowest=FALSE,right=TRUE
。您可能需要更改它。我只是显示了一个选项来对它进行分组。OP可以在cut
中进行更改,使其成为自定义labels=FALSE
@TarJae这正是cut
的方式默认情况下使用mats。您可以使用标签=c(((12,20)”,…,“(38,47)”,…)进行自定义。
@TarJae您可以检查剪切的源代码。默认情况下粘贴0(if(right)”(“else”[”,ch.br[-nb],“,”,ch.br[-1L],if(right)”)
谢谢你,akrun。我本想以同样的方式向用户15344033建议一个类似的答案,但由于出现了中断,我停止了。如果你看一下中断,每个栏都包含了之前栏的最后一个数字:例如,栏2包含21个,栏3包含21个。也许我错了,或者我忽略了什么。无论如何,谢谢你。每次都很完美!!@TarJae原因是在cut
中,还有其他参数include.lowest=FALSE,right=TRUE
。您可能需要更改它。我只是显示了一个对它进行分组的选项。OP可以在cut
中进行更改,使其成为customtrylabels=FALSE
library(dplyr)
library(ggplot2)
# random data of 1000 ages between 10 and 80 years
set.seed(24)
df <- data.frame(age = sample(10:80, 1000, replace = TRUE))
# dataframe with categorization of age in the suggested intervals. I think the last 55 is a typo.
df1 <- df %>%
mutate(agegroup = case_when(age >= 12 & age <= 20 ~ '12-20',
age >= 21 & age <= 28 ~ '21-28',
age >= 29 & age <= 37 ~ '29-37',
age >= 38 & age <= 46 ~ '38-46',
age >= 47 & age <= 55 ~ '47-55',
age >= 56 & age <= 66 ~ '56-66',
)
) %>%
count(agegroup)
# plot the bars
ggplot(data=df1, aes(x=agegroup, y=n)) +
geom_bar(stat="identity")