R: Возможно ли создать новую функцию на основе значений ввода в Rshiny или Flexdashboard - PullRequest
0 голосов
/ 05 марта 2020

R: Возможно ли создать новую функцию на основе значений ввода в Rshiny или Flexdashboard. Я поместил дату ввода во Flexdashboard, основываясь на этой дате, я хочу создавать новые функции. ОБРАЗЕЦ Дата устанавливается как

User    Item_Ordered         Due.date       Deliverd.Date   

A       Item 1              30-12-2019          -           
B       Item 2              09-09-2016      01-05-2019      
C       Item 1              09-09-2016      01-05-2019      
D       Item 3              22-09-2017      01-05-2019      
A       Item 2              22-08-2018                      
A       Item 2              19-09-2018                      
D       Item 1              19-12-2018                      
C       Item 3              20-03-2019          -           
C       Item 1              16-11-2016      16-11-2016      
B       Item 3              16-11-2016      16-11-2016      
B       Item 2              29-12-2017                      
D       Item 1              03-07-2017      07-07-2017      
A       Item 1              03-08-2017      15-08-2017      
D       Item 2              04-09-2017      30-08-2017      
D       Item 3              02-10-2017      04-10-2017      
B       Item 1              06-11-2017      31-10-2017      

Теперь, если я выберу дату как 01-05-2019, поэтому на основе этой даты я хочу создать новую функцию поздних дней. Если Deliverd.Date отсутствует, рассмотрите Reportdate как дату доставки для Late.

Новые функции: Days_delayed и Bin И из пользовательского интерфейса.

ЕСЛИ выберите дату 01-01-2019, тогда значение функции должно быть обновлено на основе этой выбранной даты.

    User    Item_Ordered         Due.date       Deliverd.Date        Days_delayed           Bin 

    A       Item 1              30-12-2019          -                   0                   Future
    B       Item 2              09-09-2016      01-05-2019              964                 Late
    C       Item 1              09-09-2016      01-05-2019              964                 Late
    D       Item 3              22-09-2017      01-05-2019              586                 Late
    A       Item 2              22-08-2018                              252                 Late
    A       Item 2              19-09-2018                              224                 Late
    D       Item 1              19-12-2018                              133                 Late
    C       Item 3              20-03-2019          -                   42                  Future
    C       Item 1              16-11-2016      16-11-2016              0                   On Time
    B       Item 3              16-11-2016      16-11-2016              0                   On Time
    B       Item 2              29-12-2017                              488                 Late
    D       Item 1              03-07-2017      07-07-2017              4                   Late
    A       Item 1              03-08-2017      15-08-2017              12                  Late
    D       Item 2              04-09-2017      30-08-2017              0                   Late
    D       Item 3              02-10-2017      04-10-2017              2                   Late    
    B       Item 1              06-11-2017      31-10-2017              0                   Late

Код я пытаюсь сделать это, но не работает.


---
title: "Oops"
social: menu
runtime: shiny
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: fill
---

    ` ` `
    Inputs {.sidebar}
    -------------------------------------

    ```{r}
    # Add Date Picker for Generate report Based on It.

    dateInput("reportdate",
      label = "Report_Date",
      value = "2019-05-01",
      min = NULL,
      max = NULL,`enter code here`
      format = "yyyy-mm-dd",
      startview = "month",
      language = "en",
      width = NULL
    )
    ` ` `
    ` ` `{r}

      Raw_data <- read.xlsx(".../line2019.xlsx",sheetIndex = 1)
        Raw_data <- mutate(Raw_data,Bin = ifelse(Raw_data$Due.Date >= input$reportdate,"Future",
                   ifelse((Raw_data$Deliverd.Date >= Raw_data$Due.Date),
                          "On Time","Late")
                 ))

    Raw_data <-
      mutate(Raw_data,Days_delayed = ifelse(Raw_data$Bin != "Late",0,
               ifelse(is.na(Raw_data$Deliverd.Date),input$reportdate - Raw_data$Due.Date,
                 Raw_data$Deliverd.Date - Raw_data$Due.Date)
             ))

    ` ` `
...