【问题标题】:ggplot and pivot_longer on multiple factorsggplot 和 pivot_longer 在多个因素上
【发布时间】:2020-07-03 22:24:59
【问题描述】:

我想让我的数据框更长,这样我就可以从中绘制一个图。我有一个要排序的二分变量(性别)。我有四个曝光作为因素。

  DF <- data.frame(sex = rbinom(1000, 1, .5),
                                expo_1 = rbinom(1000, 1:4, .15),
                                expo_2 = rbinom(1000, 1:4, .25),
                                expo_3 = rbinom(1000, 1:4, .3),
                                expo_4 = rbinom(1000, 1:4, .45))                                                   
  DF$sex <- as.factor(sex)
  DF$expo_1 <- as.factor(expo_1)
  DF$expo_2 <- as.factor(expo_2)
  DF$expo_3 <- as.factor(expo_3)
  DF$expo_4 <- as.factor(expo_4)

这是我所知道的。我正在努力计算每个级别的博览会。

DF %>%
  pivot_longer(cols = -sex, names_to = "expo") %>%
  group_by(sex, expo) 

我想要这样的东西:

非常感谢您的帮助,并在此先感谢您!

【问题讨论】:

    标签: r ggplot2 tidyr


    【解决方案1】:

    您快到了 - 使用构面和 geom_bar 获取 value 的原始计数作为填充美学。默认堆叠位置。

    提示:使用mutate_all 更容易进行类型转换

    library(tidyverse)
    DF <- data.frame(sex = rbinom(1000, 1, .5),
                     expo_1 = rbinom(1000, 1:4, .15),
                     expo_2 = rbinom(1000, 1:4, .25),
                     expo_3 = rbinom(1000, 1:4, .3),
                     expo_4 = rbinom(1000, 1:4, .45))   
    
    DF <- DF %>% mutate_all(as.factor)
    
    df_long <- DF %>%
      pivot_longer(cols = -sex, names_to = "expo")
    
    ggplot(df_long) + geom_bar(aes(x = expo, fill = value)) +facet_grid(~sex)
    

    reprex package (v0.3.0) 于 2020-03-23 创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      相关资源
      最近更新 更多