我想为某些数据创建一个闪亮的dashborad,但是,当我绘制过滤后的数据框时,它将导致大约0.5s的错误并将其显示在控制台中。
我试图删除属于子集(.[,input$groupby] %in% input$selectline
的filter命令,所有错误都将得到解决。但是,我需要过滤数据以使交互变得闪亮。
newData = mydata %>%
group_by(`Year.ending.December`,.dots=input$groupby) %>%
summarise(`Incidents.Recorded` = sum(`Incidents.Recorded`)/1000) %>%
as.data.frame() %>%
subset(.[,input$groupby] %in% input$selectline) #This command causes the error
ggplot(newData,aes_string("Year.ending.December","Incidents.Recorded",color = input$groupby)) +
geom_line() +
labs(x="Year",y="Counts(thound)")
如上面的代码所示,input $ groupby将从ui.R返回一个列名。
,但是,折线图中会显示多条线,因此我还需要让用户选择他们想要查看的线,因此input$selectline
将返回有关数据值的列表。
我还认为我的逻辑还可以,因为它最终将显示正确的结果,只有问题在显示结果之前,在绘图区域中将显示大约0.5s的错误消息,如下所示: 警告:错误顺序:参数1不是向量
108: order
105: to_basic.GeomLine
103: layers2traces
102: gg2list
101: ggplotly.ggplot
98: plotly_build.gg
96: "plotly":::"prepareWidget"
95: func
82: origRenderFunc
81: output$plotArea
1: runApp
答案 0 :(得分:0)
假设您正在renderPlot()
函数中运行该代码。您可以尝试更改一些内容:使用group_by_
代替group_by
,因为input$groupby
是一个字符向量。并使用filter_at
而不是subset
。
newData <- mydata %>%
group_by_("Year.ending.December", input$groupby) %>%
summarise(`Incidents.Recorded` = sum(`Incidents.Recorded`)/1000) %>%
as.data.frame() %>%
filter_at(vars(input$groupby), any_vars(. %in% imput$selectline))
如果您可以显示应用程序和数据的可复制示例,并且仅包含问题中涉及的元素,那么这将是一种更好的方法,可帮助您并在进行任何推荐之前测试代码。