R 使用潮汐仪、反光仪和反光骨的闪亮应用程序。如何集成和渲染细节级别数据
我是一个新的R用户,我刚刚使用tidymetrics、shinymetrics和shinybones(借助于David Robinson和Kaelen Medeiros提供的一些非常出色的例子)构建了我的第一个闪亮应用程序。该应用程序目前使用表达式调用由潮汐测量创建的摘要级别度量,以呈现图表。当然,这意味着我只提供了汇总级别的数据来输入或输出图表 我希望内置向下钻取功能,最重要的是,当我从过滤的图表中单击“下载CSV”时,我希望能够在显示的汇总总数后面输出详细程度数据 问题:有人知道如何在保留汇总tidymetrics/shinymetrics/shinybones结构附带的格式和功能的同时返回到细节级数据吗 我目前的解决方案包括: 1) .Rmd文件-读取/格式化详细数据,并使用潮汐测量“创建”度量R 使用潮汐仪、反光仪和反光骨的闪亮应用程序。如何集成和渲染细节级别数据,r,shiny,R,Shiny,我是一个新的R用户,我刚刚使用tidymetrics、shinymetrics和shinybones(借助于David Robinson和Kaelen Medeiros提供的一些非常出色的例子)构建了我的第一个闪亮应用程序。该应用程序目前使用表达式调用由潮汐测量创建的摘要级别度量,以呈现图表。当然,这意味着我只提供了汇总级别的数据来输入或输出图表 我希望内置向下钻取功能,最重要的是,当我从过滤的图表中单击“下载CSV”时,我希望能够在显示的汇总总数后面输出详细程度数据 问题:有人知道如何在保留汇
---
title: "Metrics"
owner: me
name: dashData
metrics:
usd_total_costs:
title: Total Costs
description: Total costs
total_counts:
title: Number of transactions
description: Total number of transactions
dimensions:
type:
title: Type
description: Type of transaction
group:
title: Group
description: Responsible Group
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(
warning = FALSE,
message = FALSE,
echo = FALSE
)
```
```{r load libraries}
library(tidyverse)
library(tidymetrics)
```
```{r import sample data}
dashDetail <- structure(list(type = c("Ocean", "Ground", "Ground", "Ground",
"Ocean", "Air", "Ground", "Direct Booking", "Ground", "Ground",
"Ground", "Ground", "Ground", "Ground", "Ground", "Ocean", "Air",
"Air", "Ocean", "Ground"), group = c("HD", "XM",
"HD", "YD", "WB", "HB", "YD", "AD", "HB", "AC",
"HB", "MD", "HH", "XM", "AC", "HB", "HF", "AD",
"KT", "MD"), date = structure(c(18189, 18295, 18571, 18102,
18449, 18563, 18590, 18316, 18431, 18565, 18290, 18323, 18681,
18311, 18347, 18436, 18514, 18614, 18155, 18311), class = "Date"),
item = c("1XXX", "6XBX", "1XDX",
"7XXX", "8XHX", "9XXC",
"4XXX", "0TTA", "WLXX",
"LXDX", "2XXX", "2XCX",
"1XBX", "6XXX", "06VXX",
"8MM2", "5XXX", "2MMA",
"2XXX", "JZGX"),cost = c(2582.49, 858.33, 290.19,
2528, 220, 1102.4, 101.37, 16.7, 7399, 8.59, 13.79, 852.6,
8333, 6.12, 4.45, 736.37, 54.47, 4163.64,
21.27, 6477)), row.names = c(76379L,
26372L, 122281L, 5237L, 65969L, 139921L, 115782L, 84332L, 93330L,
112516L, 24675L, 27860L, 122772L, 48470L, 23941L, 66404L, 97592L,
130089L, 9805L, 56969L), class = "data.frame")
```
```{r summarize}
dashData <- dashDetail %>%
cross_by_dimensions(type, group) %>%
cross_by_periods(c("day", "week", "month", "quarter", "year")) %>%
summarize(usd_total_costs = sum(cost, na.rm = TRUE),
total_counts = sum(n()))
```
```{r create_metrics}
dash_metrics <- create_metrics(dashData)
```
```{r save_metrics}
saveRDS(dash_metrics, ("metrics.RDS"))
---
标题:“指标”
店主:我
名称:dashData
韵律学:
美元总成本:
标题:总成本
说明:总费用
总数:
标题:交易数量
说明:交易总数
尺寸:
类型:
标题:类型
说明:交易类型
组:
标题:团体
说明:负责小组
---
```{r设置,include=FALSE}
knitr::opts_chunk$set(
警告=错误,
消息=FALSE,
回声=假
)
```
```{r加载库}
图书馆(tidyverse)
图书馆(潮汐测量)
```
```{r导入样本数据}
dashDetail%
按时段交叉(c(“日”、“周”、“月”、“季度”、“年”))%>%
汇总(美元=总成本=总成本(成本,不适用rm=真实),
总数=总和(n())
```
```{r创建_度量}
破折号度量
2)site.yaml file - calls each of the created metrics
name: Dashboard
sidebar:
- text: Metrics
icon: bar-chart-o
tabs:
- text: Total Costs
module:
metric_panel:
metric: !expr Metrics$NA_NA_usd_total_costs
- text: Total Counts
module:
metric_panel:
metric: !expr Metrics$NA_NA_total_counts
3)app.R file
# Load Libraries -----
library(shiny)
library(shinydashboard)
library(shinybones)
library(shinymetrics)
# Load Utilities -----
source_dirs('utils')
source_dirs('components')
source_dirs('pages')
# Global Data ----
Metrics <- readRDS("metrics.RDS")
# Configuration
options("yaml.eval.expr" = TRUE)
CONFIG <- yaml::read_yaml('_site.yml')
# UI ----
ui <- function(request){
dashboardPage(
# Header ----
dashboardHeader(title = CONFIG$name),
# Sidebar ----
dashboardSidebar(
sb_create_sidebar(CONFIG, Metrics)
),
# Body -----
dashboardBody(
sb_create_tab_items(CONFIG, Metrics)
)
)
}
# Server -----
server <- function(input, output, session){
sb_call_modules(CONFIG, Metrics)
}
# Run App ----
shinyApp(ui = ui, server = server, enableBookmarking = 'url')