首页 > 解决方案 > 如何在 RMarkdown + Shiny 文档中插入普通公式?

问题描述

通过在Youtube上观看 Matt Dancho 的视频,我遇到了一个问题:

我需要在我的 RMarkdown + Shiny 报告中插入简单的公式,但我发现了一些问题。首先,我的 .yml 看起来像:

---
title: "RMarkdown + Shiny"
author: "Rodrigo Hermont Ozon"
date: "`r format(Sys.time(), '%B %d, %Y')`"
output:
  html_document:
  toc: true
  toc_float: true
runtime: shiny
---

加载我可以做的包:

library(tidyverse)
library(tidyr)
library(dplyr)
library(fpp3)
library(fable)
library(tsibble)
library(data.table)
library(quantmod)
library(dygraphs)
library(shiny)

然后我使用以下数据集:

CORN <- getSymbols("CORN", auto.assign = FALSE,
                from = "2010-06-09", end = Sys.Date())

BZ_F <- getSymbols("BZ=F", auto.assign = FALSE,
                from = "2010-06-09", end = Sys.Date())

CL_F <- getSymbols("CL=F", auto.assign = FALSE,
                from = "2010-06-09", end = Sys.Date())

XC_F <- getSymbols("XC=F", auto.assign = FALSE,
                from = "2010-06-09", end = Sys.Date())

ZW_F <- getSymbols("ZW=F", auto.assign = FALSE,
                from = "2010-06-09", end = Sys.Date())

ZS_F <- getSymbols("ZS=F", auto.assign = FALSE,
                from = "2010-06-09", end = Sys.Date())

USDBRL_X <- getSymbols("USDBRL=X", auto.assign = FALSE,
                from = "2010-06-09", end = Sys.Date()) # Real effective exchange rate Brazil/Dollar

dataset <- cbind(

CORN,
BZ_F,
CL_F,
XC_F,
ZW_F,
ZS_F,
USDBRL_X

) %>% as.data.table() %>% as_tsibble()

然后我们可以为用户制作一个交互式下拉选择器:


varSelectInput(
    
  inputId = "selectedvar",
  label = "Choose a column from the data:",
  data = dataset[, 
                 colnames(dataset)!= "index" ], # User didn´t select the index 
  selected = "CORN.Close"
  
  )

然后我需要输入一个新的 RMarkdown 块,可以显示所选时间序列的,然后使用例如periodicity()所选变量的报价的最后 5 天,依此类推...tail(input$selectedvar)

我是 Shiny+Rmarkdown 的新手,我只想知道是否可以使用renderPrint({ paste("The last five prices was: ", tail(input$selectedvar)) })或其他解决方案来查看我想要的效果是否可以很好地工作。

谢谢,

标签: rshinyr-markdowninteractiveblend

解决方案


我错过了一步。道歉。

这是一个MWE:

library(shiny)
library(magrittr)
library(dplyr)

ui <- fluidPage(
  selectInput("selectedvar", "Select a column:", choices=names(mtcars)),
  textOutput("values"),
)

server <- function(input, output, session) {
  output$values <- renderPrint({
    paste0(
      "The last five values are: ", 
      paste0(
        mtcars %>% tail(5) %>% pull(!! rlang::sym(input$selectedvar)),
        collapse=", "
      )
    )
  })
}

shinyApp(ui, server)

请注意,您提供的信息很少需要回答您的问题。请阅读这篇关于如何提供 MRE 的帖子。


推荐阅读