R 如何组合表格在ggplot中创建一个条形图?

R 如何组合表格在ggplot中创建一个条形图?,r,ggplot2,filter,bar-chart,mutate,R,Ggplot2,Filter,Bar Chart,Mutate,我想知道,如何组合表格来创建一个条形图。 我首先变异并创建了新的列。。。但答案是对的还是错的 master1 <- master %>% mutate(underweight = BMI < 18.5, normal = between(BMI, 18.5, 24.9), overweight = between(BMI, 25, 29.9), obese = between(BMI, 30, 34.9),

我想知道,如何组合表格来创建一个条形图。 我首先变异并创建了新的列。。。但答案是对的还是错的

master1 <- master %>%
  mutate(underweight = BMI < 18.5,
         normal = between(BMI, 18.5, 24.9),
         overweight = between(BMI, 25, 29.9),
         obese = between(BMI, 30, 34.9),
         extreme = BMI > 35)
master1%
突变(体重不足=体重指数<18.5,
正常=介于(BMI,18.5,24.9)之间,
超重=介于(BMI,25,29.9),
肥胖=介于(BMI,30,34.9)之间,
极限值=体重指数>35)
由于我不知道如何从该表创建条形图,我将它们拆分到新表中:

t.underweight<-master1 %>%
  filter(Income>0,underweight==TRUE) %>%
  select(Income,underweight)

t.normal<-master1%>%
  filter(Income>0,normal==TRUE)%>%
  select(Income,normal)

t.overweight<-master1%>%
  filter(Income>0,overweight==TRUE)%>%
  select(Income,overweight)

t.obese<-master1%>%
  filter(Income>0,obese==TRUE)%>%
  select(Income,obese)

t.extreme<-master1%>%
  filter(Income>0,extreme==TRUE)%>%
  select(Income,extreme)
t.重量不足%
筛选器(收入>0,体重不足==真)%>%
选择(收入、减持)
t、 正常百分比
筛选器(收入>0,正常==真)%>%
选择(收入,正常)
t、 超重%
筛选(收入>0,超重==真实)%>%
选择(收入、超重)
t、 肥胖%
过滤器(收入>0,肥胖==真实)%>%
选择(收入、肥胖)
t、 极端%
过滤器(收入>0,极端==真实)%>%
选择(收入,极端)
也许有一种更简单的方法可以在变异后进行指导,如果是的话,我很乐意学习如何进行指导。如果没有,我如何合并此表以创建条形图? 我的第二个变量是“收入”。。。在y轴上,你在找这个吗?

库(tidyverse)
种子(1)

你好,尤里,谢谢你的帮助。。我在寻找这样的东西…太棒了!如果您认为此答案对您有帮助,您可以通过单击此答案左侧的勾号来接受此答案:)是,当然。。还有一个问题,但当答案是真是假时,怎么可能呢<代码>t.extreme%过滤器(收入>0,extreme==TRUE)%>%选择(收入,extreme)>头部(t.extreme)收入极端1 21600真2 4000真3 12720真4 26772真
library(tidyverse)
set.seed(1)
bmi <- runif(100, 10, 50)
income <- rnorm(100, 400, 10)
id <- 1:100

df <- data.frame(id = id, bmi = bmi, income = icnome)

res <- df %>% 
  mutate(BMI_cat = cut(
    x = bmi,
    breaks = c(0, 18.5, 25, 30, 35, Inf),
    labels = c("underweight", "normal", "overweight", "obese", "extreme"),
    ordered_result = T
  ))

ggplot(res, aes(income)) +
  geom_histogram(bins = 10) +
  facet_wrap(~BMI_cat, scales = "fixed")