Я немного новичок в 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()
})