【发布时间】:2017-08-30 10:24:18
【问题描述】:
我想上传一个列名为Time 的数据集。然后,代码找到Time列的最大值并将其除以4,以找出存在多少个大小为4的区间,然后在selectInput中打印出这个序列。这是我的代码。它可以工作,但max(data()$Time) 中有一个小错误,我不明白为什么它会给出-inf。错误说no non-missing arguments to max; returning -Inf
代码如下:
library(shiny)
ui <- fluidPage(
fileInput(inputId = "uploadcsv","", accept = '.csv'),
selectInput("select", label = h3("Select box"),
choices = "",
selected = 1)
)
server <- function(input, output, session) {
data <- reactive({
infile <- input$uploadedcsv
if (is.null(infile))
return(NULL)
read.csv(infile$datapath, header = TRUE, sep = ",")
})
observe({
if (max(data()$Time) %% 4 == 0){
numberofinterval <- max(data()$Time) %/% 4
} else {
numberofinterval <- (max(data()$Time) %/% 4)+1
}
NumPeriod <- seq(0, numberofinterval)
updateSelectInput(session, inputId = "select",
choices = NumPeriod,
selected = NumPeriod)
})
}
shinyApp(ui = ui, server = server)
【问题讨论】:
-
您可以尝试将变量格式化为日期
as.Date(),但除非您共享 csv,否则它或多或少是随机猜测...