Rshiny: Как создавать объекты на основе значения, выбранного из пользовательского интерфейса - PullRequest
0 голосов
/ 16 марта 2020

Я новичок в rshiny Как создавать функции на основе выбранного значения. В данных есть дата доставки, в соответствии с выбором даты из пользовательского интерфейса («dateinput») рассчитайте дни задержки и для каждого наблюдения добавьте новую функцию со значением «Вовремя», «Поздно» или «Будущее».

I Я новичок в rshiny & flexdashboard.

---
title: "Demo"
social: menu
runtime: shiny
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: fill
    navbar:
      - {title: "<i class='fa fa-info'></i> Report Based on date 05-01-2019", align: right}
---

# Add Date Picker for Generate report Based on It.
dateInput("RDate",
  label = "Report Date",
  value = "2019-05-01",
  min = NULL,
  max = NULL,
  format = "yyyy-mm-dd",
  startview = "month",
  language = "en",
  width = NULL
  )



Raw_data_1 <-mutate(Raw_data_1, OT_Due_date = ifelse(Raw_data_1$DueDate >=  input$RDate,"Future",
                              (ifelse(is.na(Raw_data_1$LastRcvd),
                                      (ifelse((Raw_data_1$Received >=Raw_data_1$Ordered),"On Time","Late")),
                                                ifelse((Raw_data_1$Received >=Raw_data_1$Ordered) &
                                                (Raw_data_1$LastRcvd <= Raw_data_1$DueDate),"On Time","Late")))))

1 Ответ

0 голосов
/ 18 марта 2020

У меня нет опыта работы с flexdashboard, но так как вы используете блестящие в качестве среды выполнения, вам придется работать с данными немного по-другому. 1) Все данные, которые модифицируются входным значением $, должны быть в выражении Reactive 2) рендеры должны быть специально вызваны renderTable / renderPlot, et c

Это код, который закончил работать на меня :

---
title: "Demo"
social: menu
runtime: shiny
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: fill
    navbar:
      - {title: "<i class='fa fa-info'></i> Report Based on date 05-01-2019", align: right}
---

```{r global, include = FALSE}
### ADD HERE YOUR RAW DATA AND LIBRARIES
```

# Add Date Picker for Generate report Based on It.

```{r}
dateInput("RDate",
  label = "Report Date",
  value = "2019-05-01",
  min = NULL,
  max = NULL,
  format = "yyyy-mm-dd",
  startview = "month",
  language = "en",
  width = NULL
  )
```

```{r}
Raw_data <- reactive({
  Raw_data_1 <- mutate(Raw_data_1, 
    OT_Due_date = ifelse(Raw_data_1$DueDate >= input$RDate,
                    "Future", 
                    ifelse(is.na(Raw_data_1$LastRcvd), 
                      ifelse((Raw_data_1$Received >= Raw_data_1$Ordered),
                        "On Time",
                        "Late"
                      ), 
                      ifelse(Raw_data_1$Received >= Raw_data_1$Ordered & 
                      Raw_data_1$LastRcvd <= Raw_data_1$DueDate,
                        "On Time",
                        "Late"
                      )
                    )
                  )
                )
})

renderTable(Raw_data())
```{r}
...