Реактивный выбор CSV, затем используемый в функции как df

#r #shiny

Вопрос:

Я новичок в shiny и пытаюсь объединить пару функций, но у меня возникли некоторые проблемы.

Я хочу, чтобы пользователь мог выбрать CSV, а затем получить случайный экземпляр (в данном случае твит) из этой таблицы. Следующий код работал, когда «tweetData» был статически загруженным csv с использованием read_csv.

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

function(input, output, session) {
  ## set reactive values, get randomized tweet
  appVals <- reactiveValues(
    tweet = getTweet(),
    ratings = data.frame(tweet = character(), screen_name = character(), rating = character())
    )
  
 

Я хочу вместо этого использовать динамически выбранный csv для «tweetData», что-то вроде добавления этого??

 csvName <- reactive(paste0('../folder_path/', input$file_name))
selectedData <- read.csv(csvName)
 

Как использовать реактивно выбранные CSV, чтобы вписаться в структуру первого фрагмента кода?

Комментарии:

1.Вы хотите, чтобы пользователь загружал csv в приложение? Проверить ?fileInput shiny.rstudio.com/reference/shiny/1.0.1/fileInput.html

Ответ №1:

Возможно fileInput , вы ищете возможность предоставить пользователю возможность загрузить набор данных.

Это простой воспроизводимый пример —

 library(shiny)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      fileInput("file1", "Choose CSV File"),
    ),
    mainPanel(
      tableOutput("contents")
    )
  )
)

server <- function(input, output) {
  output$contents <- renderTable({
    req(input$file1)
    read.csv(input$file1$datapath)
  })
}

shinyApp(ui, server)