【问题标题】:Adding zero valued entries so that all groups have entries for the same items添加零值条目,以便所有组都有相同项目的条目
【发布时间】:2016-02-09 11:05:16
【问题描述】:

我正在尝试使用Rcharts 创建一个跨越多个记录区域的堆叠条形图(将单独的组值堆叠在一起)。数据的格式类似于下面。

Region | Group | Value
----------------------
USA    |   A   |   5
USA    |   B   |   3
USA    |   C   |   1
UK     |   A   |   4
UK     |   B   |   6
France |   C   |   3

使用下面的代码生成一个分组条形图,效果很好。然而,堆叠的按钮不会改变情节。

nPlot(Value ~ Region, group = 'Group', 
      data = example_data, 
      type = 'multiBarChart')

查看this 线程,问题似乎是某些地区没有针对所有当前组的条目(例如,英国缺少 C 条目,而法国缺少 A 和 B 条目)。

我不确定的是如何添加 Value == 0 的条目,以便所有区域都为每个当前组添加一个条目。这样上面的数据就转换成这个了(条目的顺序无关紧要)。

Region | Group | Value
----------------------
USA    |   A   |   5
USA    |   B   |   3
USA    |   C   |   1
UK     |   A   |   4
UK     |   B   |   6
UK     |   C   |   0
France |   A   |   0
France |   B   |   0
France |   C   |   3

这最终将放置在 Shiny 应用程序的响应式组件中,因此特别有效的解决方案会很棒

【问题讨论】:

    标签: r dplyr rcharts data-manipulation


    【解决方案1】:

    我们可以使用tidyr 包中的complete()

    这是对 expand()、left_join() 和 replace_na 的封装 对于完成缺失的数据组合很有用。事实证明 隐式缺失值转化为显式缺失值。

    library(tidyr)
    library(rCharts)
    
    df %>% 
      complete(Region, Group, fill = list(Value = 0)) %>%
      nPlot(Value ~ Region, group = 'Group', 
            data = ., 
            type = 'multiBarChart')
    

    分组

    堆叠


    数据

    df <- structure(list(Region = structure(c(3L, 3L, 3L, 2L, 2L, 1L), .Label = c("France", 
    "UK", "USA"), class = "factor"), Group = structure(c(1L, 2L, 
    3L, 1L, 2L, 3L), .Label = c("A", "B", "C"), class = "factor"), 
        Value = c(5L, 3L, 1L, 4L, 6L, 3L)), .Names = c("Region", 
    "Group", "Value"), class = "data.frame", row.names = c(NA, -6L))
    

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 2017-04-03
      • 2013-08-20
      • 1970-01-01
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      相关资源
      最近更新 更多