Я застрял, пытаясь заставить даты отображаться в таблице Shiny. Я провел небольшое исследование и обнаружил, что в прошлом xtable
плохо работал с Shiny. Есть несколько вопросов о SO, которые касались этой проблемы. Единственную ссылку можно найти здесь R: xtable и даты.
Моя проблема в том, что 1) я очень новичок в программировании на Shiny и использовании xtable
. 2) Я не знаком с использованием POSIXct. 3) Я не понимаю решение, представленное в ссылке выше.
Пожалуйста, предоставьте руку помощи для базового кода ниже. Идея состоит в том, что кто-то будет использовать это приложение для ежедневного ввода данных. Эти данные будут храниться в файле .csv. При сохранении в формате .csv сохраняется только числовое значение даты R. Это то, что видно и на столе Shiny. Пожалуйста, научите меня, как правильно форматировать как в таблице, так и в файле .csv.
Перед изучением приведенного ниже кода знайте, что в нем будет храниться файл .csv с датой заголовков, A, B. Давайте назовем этот файл «журнал», и он будет храниться локально. Вот код:
library(shiny)
log <- read.table("V:\\My\\Path\\log.csv",sep=",",header=T)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(width=2,
#Enter Date
dateInput("date","Date",min="2016-07-04", max = "2017-07-04"),
#Enter Combo
selectInput(inputId = "a", "A", c("Choose one" = "","A1", "A2", "A3"), multiple = FALSE, selectize = TRUE, width = NULL, size = NULL),
#Enter Number
numericInput(inputId = "b", "Favorite Number", NULL, min = 0, max = NA),
#Enter Submit to write info to file
actionButton(inputId = "submit", "Submit", icon = NULL, width = NULL)
),
mainPanel(
# Application title
titlePanel("Read Date"),
tableOutput("summary"))
)
)
server <- function(input, output) {
#Create vector of current trial results
data <- eventReactive(input$submit, {
cbind(input$date,input$a, input$b)
})
#Append current trial results to master list
observeEvent(input$submit, {
write.table(data(), file="V:\\My\\Path\\log.csv", sep=",", col.names= FALSE, row.names=F, append = T)
})
#Create datatable variable reading in latest log
datatable <- eventReactive(c(input$agent,input$submit), { #Putting both reactive variables allow to see dataset without running and see updated dataset after running.
data.frame(read.table("V:\\My\\Path\\log.csv",sep=",",header=T))
})
#Create Table
output$summary <- renderTable({
datatable() }, digits=2,align = "cccc" )
}
shinyApp(ui = ui, server = server)
Кажется, ответ состоит в том, чтобы записать как символ в файл журнала и прочитать его как символ. Я не могу понять, как это сделать. Я на правильном пути? Поскольку я учусь, я приму любые другие предложения по улучшению моего кода.