上传 .csv 并在 Shiny 中更改 as.Date 格式
Upload .csv and change as.Date format in Shiny
我正在编写一个闪亮的应用程序,它涉及加载一个 .csv 文件,然后显示表格和图形。导入数据的其中一列需要采用日期格式,以便处理更多图表。但是,我在实现这一点时遇到了问题。
如果我直接在 RStudio 中工作,这很容易做到:
data_clean <- read.csv(input$file, header = input$header)
data_clean$date <- as.Date(data_clean$date) # converting date to date format
而且效果很好。
但是当我通过这段代码上传 .csv 文件时出现错误:
server <- function(input, output) {
# vals will contain all table and plot grobs
vals <- reactiveValues(table1=NULL,
plot1=NULL,
plot2=NULL,
plot3=NULL,
plot4=NULL,
plot5=NULL)
updata <- eventReactive(input$file, {
read.csv(input$file$datapath, header=TRUE)
})
data <- eventReactive(updata, {
updata$date <- as.Date(updata$date) # THIS IS MY PROBLEM
})
selectedDate <- eventReactive(input$clicks,{
data() %>%
filter(date > input$datesel[1] & date < input$datesel[2])
},
ignoreNULL = FALSE)
output$table1 <- renderTable(withProgress(message = 'loading summary table', value = 0.7, {
vals$table1 <- selectedDate() %>%
group_by(PINNED) %>%
summarize(
Records = n_distinct(record),
Specimens = (sum(count, na.rm = TRUE))-(sum(loaned_number, na.rm = TRUE)),
Species = n_distinct(species),
Hosts = n_distinct(host_or_trap),
Countries = n_distinct(Country, na.rm = TRUE),
Localities = n_distinct(locality),
Collectors = n_distinct(collector.museum),
Loans = sum(loaned_number, na.rm = TRUE)
)
})
)}
当我 运行 它说:错误:'closure' 类型的对象不是子集
知道为什么会这样吗?
尝试这样的事情:
data <- eventReactive(updata, {
updata() %>%
mutate(date = as.Date(date))
})
它类似于您已有的代码(回复:selectedDate
)并且不涉及子集 updata
。
我正在编写一个闪亮的应用程序,它涉及加载一个 .csv 文件,然后显示表格和图形。导入数据的其中一列需要采用日期格式,以便处理更多图表。但是,我在实现这一点时遇到了问题。
如果我直接在 RStudio 中工作,这很容易做到:
data_clean <- read.csv(input$file, header = input$header)
data_clean$date <- as.Date(data_clean$date) # converting date to date format
而且效果很好。
但是当我通过这段代码上传 .csv 文件时出现错误:
server <- function(input, output) {
# vals will contain all table and plot grobs
vals <- reactiveValues(table1=NULL,
plot1=NULL,
plot2=NULL,
plot3=NULL,
plot4=NULL,
plot5=NULL)
updata <- eventReactive(input$file, {
read.csv(input$file$datapath, header=TRUE)
})
data <- eventReactive(updata, {
updata$date <- as.Date(updata$date) # THIS IS MY PROBLEM
})
selectedDate <- eventReactive(input$clicks,{
data() %>%
filter(date > input$datesel[1] & date < input$datesel[2])
},
ignoreNULL = FALSE)
output$table1 <- renderTable(withProgress(message = 'loading summary table', value = 0.7, {
vals$table1 <- selectedDate() %>%
group_by(PINNED) %>%
summarize(
Records = n_distinct(record),
Specimens = (sum(count, na.rm = TRUE))-(sum(loaned_number, na.rm = TRUE)),
Species = n_distinct(species),
Hosts = n_distinct(host_or_trap),
Countries = n_distinct(Country, na.rm = TRUE),
Localities = n_distinct(locality),
Collectors = n_distinct(collector.museum),
Loans = sum(loaned_number, na.rm = TRUE)
)
})
)}
当我 运行 它说:错误:'closure' 类型的对象不是子集
知道为什么会这样吗?
尝试这样的事情:
data <- eventReactive(updata, {
updata() %>%
mutate(date = as.Date(date))
})
它类似于您已有的代码(回复:selectedDate
)并且不涉及子集 updata
。