首页 > 解决方案 > 当输入包含空格时,Eval Parse 意外符号

问题描述

我正在构建一个闪亮的应用程序,用户可以根据自己的喜好动态更改折线图的颜色。为此,我使用以下函数生成折线图:

create_line<-function(data,filter,x,y,colour,shape,size,alpha){

cols <- paste0("c(", paste0("input$col", sort(filter), collapse = ", "), ")")
cols <- eval(rlang::parse_expr(cols))
req(length(cols) == length(filter))  

data %>%   
ggplot(aes(x=x,y=y,colour=colour))+
geom_point(shape=shape,size=size,alpha=alpha)+ geom_line()+
generate_theme()+
scale_colour_manual(values = cols)}

output$plot1 <- renderPlotly({
  create_line(data(),                                    # data 
                   input$producer,                       # filter   
                   data()$date,                          # x-axis
                   data()$total,                         # y-axis
                   data()$content_producer,              # colour
                   21, 0.8, 0.8)})                       # shape,size,alpha 

其中 data() 是对用户可以输入的数据的反应,例如日期范围和 content_proucer。用户可以更改输入的颜色(在这种情况下为过滤器),并且当输入不包含空格时它工作得很好。例如,如果输入是“Main Road”,则它不起作用(并给出 Unexpected symbol 错误),但如果它是“MainRoad”,则它起作用。有没有办法在不实际删除输入空间的情况下完成这项工作?

标签: rshiny

解决方案


推荐阅读