我试图让日期显示在Shiny表格中。我做了一些研究,发现过去xtable
与Shiny的效果并不理想。 SO上有几个问题涉及这个问题。可以在R: xtable and dates找到一个例行参考。
我的问题是1)我在Shiny编程和使用xtable
方面非常陌生。 2)我不熟悉使用POSIXct。 3)我不理解上面链接中提供的解决方案。
请为下面的基本代码提供帮助。这个想法是有人会使用这个应用程序每天输入数据。这些数据将存储在.csv中。存储在.csv时,仅存储R日期的数值。这也是Shiny桌子上出现的内容。请教我如何在表和.csv文件中正确格式化。
在检查下面的代码之前,请知道会存储一个.csv文件,其中包含标题日期,A,B。让我们调用此文件" log"它将存储在本地。这是代码:
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)
似乎答案是将字符写入日志文件并将其作为字符读回。我无法理解这样做。我是在正确的轨道上吗?因为我正在学习,所以我会就如何改进我的代码采取任何其他建议。
答案 0 :(得分:4)
我终于找到了简单的解决方案。
我刚从
构建数据框时更改了代码 data <- eventReactive(input$submit, {
cbind(input$date,input$a, input$b)
到
data <- eventReactive(input$submit, {
cbind(as.character(input$date),input$a, input$b))
添加as.character()
似乎已经成功了。我不知道这是否会产生后果,但显示的表现在看起来不错。