There is the following data frame created with rhandsontable
as a shiny
app.
I am trying to locate a date from a dropdown calendar in the "Transaction date" column. However, my choice from the calendar is not replacing the preexisting date.
When I run a script on the R console there is popping up the following message as well:
Warning in as.character.POSIXt(as.POSIXlt(x)): as.character(td, ..) no longer obeys a 'format' argument; use format(td, ..)?
Would appreciate your help!
library(shiny)
library(data.table)
library(rhandsontable)
library(shinydashboard)
library(dplyr)
`Cash in hand` <- data.table(
"Transaction date" = as.Date("2022-01-01"),
"Profit" = as.numeric(0),
"Loss" = as.numeric(0),
"Balance" = as.numeric(0),
stringsAsFactors = FALSE
)
ui <- fluidPage(
dashboardPage(
dashboardHeader(title = "Accounting"),
dashboardSidebar(
sidebarMenu(
menuItem("Home", tabName = "home"),
menuItem("Current assets", tabName = "current assets",
menuItem("Cash", tabName = "cash",
menuSubItem("Cash in hand", tabName = "cash_in_hand")
)
)
)
),
dashboardBody(
tabItems(
tabItem(tabName = "home",
h2("Welcome to the Home Page")
),
tabItem(tabName = "cash_in_hand",
rHandsontableOutput("Table1010")
)
)
)
)
)
server <- function(input, output) {
data <- reactiveValues()
observe({
input$recalc
data$df1010 <- as.data.frame(`Cash in hand`)
})
observe({
if (!is.null(input$Table1010))
data$df1010 <- hot_to_r(input$Table1010)
})
output$Table1010 <- renderRHandsontable({
data$df1010$Balance <- data$df1010$Profit + data$df1010$Loss
data <- data$df1010 %>%
mutate(`Transaction date` = as.Date("2022-01-01")) %>%
head(1)
rhandsontable(data, strecH = "all") %>%
hot_col(1, type = "dropdown") %>%
hot_col(1, type = "date")
})
}
shinyApp(ui, server)
If you want to use the the date dropdown in an
rhandsontable
, you can define the column in your data frame usingas.character()
and then pass thedateFormat
explicitly insidehot_col
, e.g.hot_col(1, dateFormat = 'YYYY-MM-DD', type = "date")
.