flexdashboard上的节命名和浏览应用程序存在问题
我尝试使用flexdashboard上的节命名和浏览应用程序存在问题,r,r-markdown,flexdashboard,R,R Markdown,Flexdashboard,我尝试使用flexdashboard命名一个节。但是,我不能这样做。我试着在这里写,但它不作为标题出现在仪表板中,但不起作用。我的代码: --- title: "Statistics" output: flexdashboard::flex_dashboard: orientation: columns vertical_layout: fill theme: cerulean runtime: shiny --- ```{r} library(tidyv
flexdashboard
命名一个节。但是,我不能这样做。我试着在这里写,但它不作为标题出现在仪表板中,但不起作用。我的代码:
---
title: "Statistics"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
theme: cerulean
runtime: shiny
---
```{r}
library(tidyverse)
library(flexdashboard)
set.seed(123)
df_1 <- data.frame(
x = replicate(n = 6, expr = runif(30, 20, 100)),
y = sample(x = 1:3, size = 30, replace = TRUE)
)
reg <- lm(
x.1 ~ x.2 + x.3, data = df_1
)
saveRDS(object = reg, file = 'regression.rds')
out_1 <- readRDS('regression.rds')
```
Regression{data-navmenu='Forecast'}
======================================================================
Sidebar {.sidebar}
----------------------------------------------------------------------
**Panel**
```{r}
sliderInput(
inputId = 'x.2', label = 'Advertising expenses:',
value = mean(df_1$x.2), min = min(df_1$x.2), max = max(df_1$x.2)
)
sliderInput(
inputId = 'x.3', label = 'Sellers:',
value = mean(df_1$x.3), min = min(df_1$x.3), max = max(df_1$x.3)
)
```
```{r}
reac_1 <- reactive({
tibble(
x.2 = input$x.2,
x.3 = input$x.3
)
})
predict_1 <- reactive({
predict(
out_1, reac_1()
)
})
```
Column{}
----------------------------------------------------------------------
### HERE DOES NOT APPEARS IN DASHBOARD
```{r}
renderValueBox({
valueBox(
value = scales::dollar(predict_1(), prefix = 'R$ ', big.mark = '.',
decimal.mark = ','),
caption = ifelse(test = predict_1() < 33.3, 'Low price',
ifelse(test = predict_1() < 66.6, 'Medium price', 'High price')),
icon = ifelse(predict_1() < 33.3, 'fa-cc-visa',
ifelse(test = predict_1() < 66.6, 'fa-cc-mastercard', 'fa-cc-amex')),
color = ifelse(predict_1() < 33.3, 'pink',
ifelse(test = predict_1() < 66.6, 'orange', 'lightgreen'))
)
})
```
### HERE APPEARS IN DASHBOARD
```{r}
plot(reg)
```
---
标题:“统计”
输出:
flexdashboard::flex_仪表板:
方向:列
垂直布局:填充
主题:蔚蓝
运行时间:闪亮
---
```{r}
图书馆(tidyverse)
库(flexdashboard)
种子集(123)
df_1我认为出现这种情况是因为renderValueBox()
剥离了包含节头的外部div
如果我们改为使用自定义版本的renderValueBox()
,而不剥离外部div,则可以实现所需的输出:
---
title: "Statistics"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
theme: cerulean
runtime: shiny
---
```{r}
library(tidyverse)
library(flexdashboard)
# custom rendervaluebox that does not strip outer div
my_renderValueBox <- function(expr, env = parent.frame(), quoted = FALSE) {
# Convert the expression to a function
vbox_fun <- shiny::exprToFunction(expr, env, quoted)
# Wrap that function in another function which strips off the outer div and
# send it to renderUI.
shiny::renderUI({
vbox <- vbox_fun()
if (promises::is.promising(vbox)) {
vbox %...>%
{ . }
} else {
vbox
}
})
}
set.seed(123)
df_1 <- data.frame(
x = replicate(n = 6, expr = runif(30, 20, 100)),
y = sample(x = 1:3, size = 30, replace = TRUE)
)
reg <- lm(
x.1 ~ x.2 + x.3, data = df_1
)
saveRDS(object = reg, file = 'regression.rds')
out_1 <- readRDS('regression.rds')
```
Regression{data-navmenu='Forecast'}
======================================================================
Sidebar {.sidebar}
----------------------------------------------------------------------
**Panel**
```{r}
sliderInput(
inputId = 'x.2', label = 'Advertising expenses:',
value = mean(df_1$x.2), min = min(df_1$x.2), max = max(df_1$x.2)
)
sliderInput(
inputId = 'x.3', label = 'Sellers:',
value = mean(df_1$x.3), min = min(df_1$x.3), max = max(df_1$x.3)
)
```
```{r}
reac_1 <- reactive({
tibble(
x.2 = input$x.2,
x.3 = input$x.3
)
})
predict_1 <- reactive({
predict(
out_1, reac_1()
)
})
```
Column{}
----------------------------------------------------------------------
### HERE NOW APPEARS AS DESIRED
```{r}
my_renderValueBox({
valueBox(
value = scales::dollar(predict_1(), prefix = 'R$ ', big.mark = '.',
decimal.mark = ','),
caption = ifelse(test = predict_1() < 33.3, 'Low price',
ifelse(test = predict_1() < 66.6, 'Medium price', 'High price')),
icon = ifelse(predict_1() < 33.3, 'fa-cc-visa',
ifelse(test = predict_1() < 66.6, 'fa-cc-mastercard', 'fa-cc-amex')),
color = ifelse(predict_1() < 33.3, 'pink',
ifelse(test = predict_1() < 66.6, 'orange', 'lightgreen'))
)
})
```
### HERE APPEARS IN DASHBOARD
```{r}
plot(reg)
```
---
标题:“统计”
输出:
flexdashboard::flex_仪表板:
方向:列
垂直布局:填充
主题:蔚蓝
运行时间:闪亮
---
```{r}
图书馆(tidyverse)
库(flexdashboard)
#不带外部div的自定义rendervaluebox
如果没有我可以在电脑上轻松复制的东西,我的渲染值框很难说。最好的办法是把仪表板上所有不相关的东西都去掉,然后再试一次。您可以尝试删除列后面的大括号,或者至少在单词和大括号之间留出一个空格。我记得flexdashboard对这些事情很挑剔。正如Paul所说,如果没有一个可复制的例子,很难提供帮助。这可能是因为标题部分中不能有valueBox。请注意,在这些示例中,标题都被解释为每个valueBox的标题。我无法重现您在浏览器中遇到的问题,但我怀疑这可能是特定于浏览器的问题。在RStudio、Firefox v69.0b7和Chrome v75.0.3770.142中,上述功能非常适合我。