【问题标题】:RShiny: Operation not allowed without an active reactive contextR Shiny:没有活动的反应上下文不允许操作
【发布时间】:2017-11-14 16:56:29
【问题描述】:

我到处寻找解决方案,但我就是不知道如何在我的情况下摆脱 RShiny 中的 Operation not allowed without an active reactive context. 错误。这是我的服务器代码:

library(ggplot2)

# Surprisingly there is no correlation between charged kw and time
s <- data[,14:16]
s <- s[complete.cases(s),]
cor(s$charged_kwh, s$connected_time_hours)

car_types <- data %>% group_by(car) %>% 
  summarise(nrUsers = n_distinct(user_id), n=n()) %>% 
  filter(car!="Unknown", car!= " ") %>% 
  arrange(desc(nrUsers))

# Connected hours vs actually charging hours
carged_cars <- reactive({
  data %>% 
  filter(!is.na(charged_kwh)) %>%
  mutate(charging_time =  charged_kwh / kw_charge_point_speed)
})

filteredData <- carged_cars()[carged_cars()$start_date >= input$cvc_date_diagram[1] & carged_cars()$start_date <= input$cvc_date_diagram[2] &
  carged_cars()$connected_time_hours <= input$cvc_max,]

connTimeVsStart <- ggplot(reactive(filteredData), aes(x=start_date, y=connected_time_hours)) +
  geom_point(shape=16) +
  geom_point(reactive(filterData), aes(x=start_date, y=charging_time), col='red') +
  ggtitle("Charging time")

output$connTimeVsStart <- renderPlot({
  d <- data()
  connTimeVsStart
})

data 这里是一个数据框,其中包含有关电动汽车充电行为的数据。控制台说我的脚本在此服务器脚本的第 20 行崩溃,因此定义了 filteredData 的部分。我觉得我已经尝试过使用reactive({})reactive() 等使源变量反应或不反应的所有组合。谁能发现我做错了什么?

【问题讨论】:

  • 这行不通? filtersData = input$cvc_date_diagram[1] & carged_cars()$start_date
  • @qfazille 不。它确实将错误移至第 25 行,ggplot

标签: r shiny


【解决方案1】:

也许这段代码可以帮到你。

注意:
1/ 我没有看到 car_types 的任何用途
2/ 我不知道你的变量data 是在哪里创建的

library(ggplot2)

# Surprisingly there is no correlation between charged kw and time
s <- data[,14:16]
s <- s[complete.cases(s),]
cor(s$charged_kwh, s$connected_time_hours)

car_types <- data %>% group_by(car) %>% 
  summarise(nrUsers = n_distinct(user_id), n=n()) %>% 
  filter(car!="Unknown", car!= " ") %>% 
  arrange(desc(nrUsers))

# Connected hours vs actually charging hours
carged_cars <- reactive({
  data %>% 
  filter(!is.na(charged_kwh)) %>%
  mutate(charging_time =  charged_kwh / kw_charge_point_speed)
})

filteredData <- reactive({
    req(carged_cars())
    req(input$cvc_date_diagram)
    carged_cars()[carged_cars()$start_date >= input$cvc_date_diagram[1] & carged_cars()$start_date <= input$cvc_date_diagram[2] &
        carged_cars()$connected_time_hours <= input$cvc_max,]
})

connTimeVsStart <- reactive({
    ggplot(filteredData(), aes(x=start_date, y=connected_time_hours)) +
        geom_point(shape=16) +
        geom_point(reactive(filterData), aes(x=start_date, y=charging_time), col='red') +
        ggtitle("Charging time")
})

output$connTimeVsStart <- renderPlot({
  connTimeVsStart()
})

【讨论】:

    猜你喜欢
    • 2020-06-26
    • 2019-01-10
    • 2013-09-29
    • 2016-04-17
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    相关资源
    最近更新 更多