r - 当输入包含空格时,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”,则它起作用。有没有办法在不实际删除输入空间的情况下完成这项工作?
解决方案
推荐阅读
- python - 打印单引号成为 .txt 文件中的奇怪字符
- angular - 在同一个项目中使用 Angular Material2 和 PrimeNG
- python - 播放声音文件时 Python 3 权限错误(mp3,playsound 模块)
- javascript - 剑道。上传。上传方法不会触发 onUpload 事件
- intellij-idea - 如何在 IntelliJ 生成的构造函数中禁用字段注释的自动包含?
- android - 如何使用 Osmdroid 库在两个坐标之间绘制曲线
- python - 将参数传递给 Scapy 的 Automaton.run() 方法
- android - 如何像 iPhone 一样左对齐 AOSP 的 Launcher3 的工作区
- css - @import 在 Ruby 应用程序的 application.scss 中不起作用
- sql - 将 2 个复杂的 GROUP BY / PARTITION BY 查询转化为 1 个查询