- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组看起来像这样的数据:
+----------+------------+-------+-------+
| step1 | step2 | step3 | step4 |
+----------+------------+-------+-------+
| Region 1 | District A | 1A | 571 |
| Region 1 | District A | 1A | 356 |
| Region 1 | District A | 1B | 765 |
| Region 1 | District B | 1B | 752 |
| Region 2 | District C | 2C | 885 |
| Region 2 | District C | 2D | 73 |
| Region 2 | District D | 2D | 241 |
| Region 2 | District D | 2D | 823 |
| Region 3 | District E | 3E | 196 |
| Region 3 | District E | 3E | 103 |
| Region 3 | District F | 3E | 443 |
| Region 3 | District F | 3F | 197 |
+----------+------------+-------+-------+
我已经设置了以下脚本,按照它的编写方式,使用 selectizeGroupServer
自动设置 step1、step2 和 step3 之间的过滤,以便它们链接在一起(即,如果您过滤对于 Region 1,它只会返回 Step2 和 Step3 中的相关选项。
如果您希望以直接的方式group_by_all
,下面的脚本会返回我正在寻找的结果。所以在初始运行时,它将显示所有 11 个结果的图形输出。如果我按区域 1 过滤,它将返回链接到区域 1 的第 4 步中所有四个数字的图表。
但我想以一种方式设置它,当我选择一个选项时,它实际上会按其下方的层次结构选项分组。因此,如果我按区域 1 过滤,它将返回两列:A 区的总和 (1692) 和 B 区的总和 (752)。如果我同时选择了 Region 1 和 District A,它将返回两列:1A 的聚合 (927) 和与 District A (765) 相关的 1B 的聚合。
我该如何设置才能实现这一目标?
library(highcharter)
library(shiny)
library(shinyWidgets)
library(dplyr)
step1 <- c('Region 1', 'Region 1', 'Region 1', 'Region 1', 'Region 2', 'Region 2', 'Region 2', 'Region 2', 'Region 3', 'Region 3', 'Region 3', 'Region 3')
step2 <- c('District A', 'District A', 'District A', 'District B', 'District C', 'District C', 'District D', 'District D', 'District E', 'District E', 'District F', 'District F')
step3 <- c('1A', '1A', '1B', '1B', '2C', '2D', '2D', '2D', '3E', '3E', '3E', '3F')
step4 <- c(571,356,765,752,885,73,241,823,196,103,443,197)
ui <- fluidPage(
fluidRow(
column(
width = 5, offset = 1,
panel(
selectizeGroupUI(
id = "foo",
params = list(
Step1 = list(inputId = "step1", title = "Step1:"),
Step2 = list(inputId = "step2", title = "Step2:"),
Step3 = list(inputId = "step3", title = "Step3:")
))
),
highchartOutput(outputId = "table")
)
)
)
server <- function(input, output, session) {
abc <- callModule(
module = selectizeGroupServer,
id = "foo",
data = df,
vars = c("step1", "step2", "step3")
)
output$table <- renderHighchart({
bar <- abc()
xyz <- bar %>% filter(is.null(input$step1) | step1 %in% input$step1,
is.null(input$step2) | step2 %in% input$step2,
is.null(input$step3) | step3 %in% input$step3) %>% group_by_all() %>% summarise(results = sum(step4))
highchart() %>% hc_add_series(data = xyz, type = "column", hcaes(y = results),
showInLegend = TRUE) %>% hc_add_theme(hc_theme_flat())
})
}
谢谢!
最佳答案
首先,我们需要找出要分组的列。在这种情况下,我假设它是具有多个选项的第一列。其余代码非常相似,只是 group_by_all
被替换为 group_by_at
。
output$table <- renderHighchart({
bar <- abc()
# find out which column to group by (first column with more than 1 distinct value)
summ_column <- bar %>%
summarise_all(~ length(unique(.))) %>% {colnames(.)[.>1]} %>% first()
xyz <- bar %>% group_by_at(summ_column) %>% summarise(results = sum(step4))
highchart() %>% hc_add_series(data = xyz, type = "column", hcaes(y = results),
showInLegend = TRUE) %>% hc_add_theme(hc_theme_flat())
})
如果您为单个选项选择超过 1 个值,这将不起作用,但该解决方案应该非常相似。
关于r - 设置条件 group_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59339999/
我有一个 data.frame,例如 df1 % summarise(no.c = n(), m.costs = mean(cost)) 通过 id 计算观测值的数
问题:我想使用 dplyr/tibble add_row。我想在我的示例中按 A 对数据进行分组,然后 add_row 包含组名 A,然后是 B 的值。 我面临的问题是尝试在 A 下的列中添加 Gro
Ruby 有这个很棒的方法 group_by对于可枚举的。 Elixir 有类似的东西吗?我在 Enum 模块上找不到此功能。谢谢 最佳答案 还没有。我们还没有添加它,因为我们正在等待 map 。它将
我有 30 个传感器的 CO2 测量数据,这些传感器不会同时测量,也不会完全在同一时间开始。我想尽可能地对齐它们,所以我认为取 10s 的平均值可能是一个很好的解决方案。 在上一个问题中:Group
我有数据和图表,就像我在下面给出的示例一样。 我想要第三个“条件”,即给定年份和月份的条件 A 和条件 B 的总金额。我不知道该怎么做,因为 Condition 包含在 group_by 语句中。特别
我有一组看起来像这样的数据: +----------+------------+-------+-------+ | step1 | step2 | step3 | step4 | +
下面是我的示例,让我解释一下我正在尝试做的事情,尽管它并没有像我想要的那样工作。 我需要找到同一个人在同一日期的 z 列中有 2 个以上唯一值的所有实例。但是,我需要找到 z 列中特定值列表的位置。
我有一些数据如下所示: cusip date start_date end_date 1 00036020 2011-01-31 2011-07-29 2012-06-30
我在 codeigniter 中有这个问题: 我尝试从数据库制作导航树系统。 模型: function getServices() { $this->db->select('service_url,
我想使用dplyr进行一些数据操作。背景:我有一个调查权重和一堆变量(主要是Likert项)。我想对带有或不带有调查权重的每个类别的频率和百分比求和。 例如,让我们只使用频率作为性别变量。结果应该是这
我正在处理大型(最少 8 百万行)dataframes并希望根据几个分组变量和 rmultinom 进行一些基本计算.就我的代码而言,完成计算至少需要约 1 秒,这不是问题,但我需要执行数千次,所以我
我将 flask 用作带有 sqlalchemy 的 python 框架。这些模型使用 query_property 帮助我构建查询: class Person(object): qu
我正在使用 R 编程语言。 我有以下数据集: library(dplyr) df = structure(list(ethnicity = c("c", "c", "c", "b", "c", "b"
我有数据集,df, Subject Folder Message Date A Out 9/9/2019 5
我的数据库看起来(有点)像这样: Table 'posts': ID title text 62 Trees in Europe You can find fine t
我的一些组合值在文本字段中有逗号,有没有办法可以指定要连接的字符,而不是逗号? 最佳答案 在 mysql documentation你可以找到完整的语法 GROUP_CONCAT([DISTINCT]
我想根据内容对数组的字符串元素进行分组。 ["abc", "abc", "def", "ghi", "ghi"].group_by { |x|一些代码 所以我希望它返回: [["abc", "abc"
Python 3.6我有一个简单的对象列表: for obj in obj_ts: print(obj['address']) 这告诉我: mwpJCSEEkphA1utQGA2Y9Vx8cu
我有一个名为 questions 的表,其中包含以下行: questions.id | questions.target_username 1 | every.one 2
我的数组是 fruits = [["apple", "Tue"], ["mango", "Mon"], ["apple", "Wed"], ["orange", "Tue"]] 我要得到的结果是Gro
我是一名优秀的程序员,十分优秀!