Я не могу манипулировать (преобразования данных или любые другие формы манипуляции) CSV-данных в рамках реактивного () или renderDataTable () - PullRequest
0 голосов
/ 16 апреля 2019

Я немного новичок в R. Я могу каким-либо образом манипулировать данными в csv с помощью консоли rstudio. Однако, когда я перемещаю код в среду Shinyr или Shinydashboard, я не могу манипулировать данными, кроме как просто читать их,Вот некоторые из ошибок, которые я получаю:

Warning: Error in datatable: 'data' must be 2-dimensional (e.g. data frame or matrix)
Warning: Error in $: object of type 'closure' is not subsettable

Я пытался переместить данные из renderDataTable () в реактивный (), поскольку в коде много переменных, значения которых меняются довольно часто в зависимости отя читал разные csv-файлы. Я надеялся, что преобразования данных, такие как (tostring, as.date), смогут хорошо конвертироваться в реактив ()

function(input, output, session) {
  dhh  <- reactive({
    inFile <- input$file
    if (is.null(inFile)) return(NULL)
    datatables <- read.csv(input$file[[1, 'datapath']], check.names=FALSE)
    return(datatables)
  })

  output$terry <- renderDataTable({
    if (is.null(dhh)) return(NULL)
    datatables <- data.frame(dhh())
    datatables
  })

  mk <- reactive({
    if (is.null(input$file)) return(NULL)
    inFile <- input$file
    datatable <- read.csv(input$file[[2, 'datapath']], check.names=FALSE)
    return(datatable) 
  })


  output$contents <- renderDataTable({
    if (is.null(mk)) return(NULL)
    datatable <- data.frame(mk())
    datatable
  })

  gloria <- reactive({
    alice <- dhh()
    calvin <- mk()
    x1=calvin[order(nrow(calvin):1),] #invert row order
    ppp <- as.character(alice$Client )
    non <- data.frame(calvin$CLIENTID)
    vcv <- c(ppp)  
    tttt <- as.vector(non)

    r <- calvin[non %in% vcv, ] 

    pipo <- r %>% 
      mutate(UPDATED.ON=as.Date(r$UPDATED.ON, format = "%m/%d/%Y"))%>% 
      group_by(CLIENTID) %>%  
      arrange(desc(UPDATED.ON)) %>%
      slice(1)

    #calculate difference in days
    y <- pipo$UPDATED.ON
    tr <- as.Date(y, format = "%Y/%m/%d")
    jp <- Sys.Date()
    ty <- as.numeric(difftime(Sys.Date(), tr), units="days")
    ty


    })

  output$marvin <- renderDataTable({
    gloria()

  })
...