Я использую R блестящий, чтобы построить панель мониторинга, которая состоит из двух таблиц и сравнивает их, чтобы получить некоторые результаты. Когда я сделал это для одного шаблона, он работает просто отлично. Но когда я пытаюсь добавить два разных типа сравнения на основе входного параметра, он не проходит. Вот что я делал на сервере. R изначально (и который работает),
report1 <- eventReactive(input$Report1, {
read.csv(input$Report1$datapath)
report2 <- eventReactive(input$Report2, {
read.csv(input$Report2$datapath)
Где Report1 и Report2 - входные файлы, поступающие из ui.R. Я хочу добавить параметр, который будет определять, как обрабатывать входной файл. Скажем, два метода обработки называются «Method1» и «Method2». Я не могу использовать один и тот же метод для вызова обоих типов, так как второй набор файлов имеет формат .crm, который является ";"отдельный файл, который R не распознает напрямую. Чтобы быть понятным, следующий код прекрасно работает для файла .crm при запуске без сервера.
File <- read.csv(file, sep = ";", header = TRUE)
Так что я хочу сделать, это
handlingMethod <- reactive(input$Method)
if (handlingMethod() == "Method1"){
report1 <- eventReactive(input$Report1, {
read.csv(input$Report1$datapath)})
report2 <- eventReactive(input$Report2, {
read.csv(input$Report2$datapath)})
} else if (handlingMethod() == "Method2"){
report1 <- eventReactive(input$Report1, {
read.csv(input$Report1$datapath,sep = ";", header = TRUE)})
report2 <- eventReactive(input$Report2, {
read.csv(input$Report2$datapath, sep = ";", header = TRUE)})
} else {}
Но это дает мне ошибку«Вы пытались сделать что-то, что можно сделать только из реактивного выражения или наблюдателя». Я думал, что понял эту проблему и решил ее, но, видимо, нет. Затем я поместил все это в реактивное выражение следующим образом:
reactive({if (handlingMethod() == "Method1"){
report1 <- eventReactive(input$Report1, {
read.csv(input$Report1$datapath)})
report2 <- eventReactive(input$Report2, {
read.csv(input$Report2$datapath)})
} else if (handlingMethod() == "Method2"){
report1 <- eventReactive(input$Report1, {
read.csv(input$Report1$datapath,sep = ";", header = TRUE)})
report2 <- eventReactive(input$Report2, {
read.csv(input$Report2$datapath, sep = ";", header = TRUE)})
} else {}})
, который запускает блестящее приложение, но затем показал мне сообщение "Ошибка в отчете1: не удалось найти функцию" report1 ""
Кто-нибудь видел подобную ошибку раньше? Если это так, я буду благодарен, если вы скажете мне, что это такое.