【问题标题】:Shiny manipulating input$df with reactive闪亮的操纵 input$df 与反应
【发布时间】:2021-04-10 20:31:54
【问题描述】:

我是新来的闪亮并试图修改此代码以允许从动态选择的 csv 中使用该函数。

## function to return random row number from data set
getTweet <- function(){
 tweetData[sample(nrow(tweetData), 1), ]
}

our_tweet <- isolate(appVals$tweet)
  output$tweet <- renderText({ our_tweet$tweet })
  output$screen_name <- renderText({ our_quote$screen_name })
  output$resultsTable <- renderDataTable({appVals$ratings})

当 tweetData 是通过 read.csv() 读取的静态 csv 时,上面的代码有效,但是当我尝试使用下拉菜单选择 csv 时,我能够无错误运行的唯一方法是将其放入 renderDataTable () 功能。我如何在 input$file 中使用响应式值并且仍然能够运行上述代码。

使用 renderDataTable() 的代码:

 output$test <- renderDataTable({
    req(input$file)
    csvName <- paste0('../path/to/file/', input$file)
    selectedData <- read.csv(csvName)
    selectedData
    })

我希望能够做这样的事情:

csvName <- paste0('../path/to/file/', input$file)
selectedData <- read.csv(csvName)

selectedData[sample(nrow(selectedData), 1), ]

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    您可以创建reactive 函数:

    csvName <- reactive(paste0('../path/to/file/', input$file))
    selectedData <- reactive(read.csv(csvName()))
    

    然后您可以在其他响应式中使用响应式函数,例如 renderDataTable

    output$test <- renderDataTable({
      selectedData()[sample(nrow(selectedData()), 1), ]
        })
    

    在调用反应函数的结果时不要忘记()csvName(), selectedData(), , ...

    【讨论】:

    • @mk2080,它回答了你的问题吗?
    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 2015-06-23
    • 2014-08-23
    相关资源
    最近更新 更多