r - 将带有时区对象的日期时间传递给闪亮仪表板中的日期范围输入
问题描述
我在下面有一个闪亮的仪表板,dateRange()
其中有一个我想通过时区传递日期时间的输入。但是,当我尝试将我的 datetime 对象转换为我得到的因子后将它们转换为日期时NAs
。我该如何继续?
require(lubridate)
require(dplyr)
df = data.frame(timestring = c("2015-12-12 13:34:56", "2015-12-14 16:23:32"),
localzone = c("America/Los_Angeles", "America/New_York"), stringsAsFactors = F)
df$moment = as.POSIXct(df$timestring, format="%Y-%m-%d %H:%M:%S", tz="UTC")
df = df %>% rowwise() %>% mutate(localtime = force_tz(moment, localzone))
df
df$localtime <- factor(df$localtime)
df$localtime<- as.Date(df$localtime, format = "%Y/%m/%d")
## app.R ##
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
dateRangeInput('dateRange',
label = 'Date range input: yyyy-mm-dd',
start = df$localtime - 2, end = df$localtime + 2
)
),
dashboardBody()
)
server <- function(input, output) {
}
shinyApp(ui, server)
解决方案
您不想将日期对象转换为因子。我删除了该factor()
行,它工作正常。另外,我想您希望用户选择时区的位置,因为您的数据框中有两个项目,但是start
,end
只接受一个。我添加了一个位置选择器。
require(lubridate)
require(dplyr)
df = data.frame(timestring = c("2015-12-12 13:34:56", "2015-12-14 16:23:32"),
localzone = c("America/Los_Angeles", "America/New_York"), stringsAsFactors = F)
df$moment = as.POSIXct(df$timestring, format="%Y-%m-%d %H:%M:%S", tz="UTC")
df = df %>% rowwise() %>% mutate(localtime = force_tz(moment, localzone))
df$localtime = as.Date(df$localtime, format = "%Y/%m/%d")
df
## app.R ##
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
selectInput(inputId = "choosezone", label = "Choose your location",choices = c("LA", "NY")),
uiOutput("selectdate")
),
dashboardBody()
)
server <- function(input, output) {
output$selectdate = renderUI({
location_choice = ifelse(input$choosezone == "LA", 1, 2)
dateRangeInput('dateRange',
label = 'Date range input: yyyy-mm-dd',
start = df$localtime[location_choice] - 2, end = df$localtime[location_choice] + 2
)
})
}
shinyApp(ui, server)
推荐阅读
- magento2 - Magento 2.4.2 , php v8.0
- firebase - Flutter Firebase——为 iOS、Android 和 Web 设置不同的部署目标
- c++ - 为什么在下面的代码中使用 string 而不是 char 会显示错误?
- swift - 使用 pan guesture 调整集合视图单元格的大小
- javascript - 将对象数组聚合为对象javascript的单个不同值
- google-cloud-platform - 无法使用 ssh 连接到 gcloud?
- python - tf.python.ops 和 tensorflow.python.framework.ops 是什么关系?
- confluence-rest-api - 如何搜索标题以特定短语开头的页面?
- amazon-web-services - Kibana Snapshot restore .opendistro-alerting-config no permission to restore
- c# - 无法将用 C++ 编写的 Dll 导入 C# .NetCore