我有一个数据框。我想选择要减去的列并绘制结果列值。当我运行应用程序时,出现以下错误:
二进制运算符的非数字参数
我了解错误的含义,但我一直在努力寻找答案。有人可以救我脱离痛苦吗?
下面是代码:
library(shiny)
library(shinyWidgets)
library(ggplot2)
library(tidyverse)
df<-data.frame('date'=c('2020-01-01','2020-01-02','2020-01-03'),
'a'=c(1,3,8),'b'=c(2,4,9),'c'=c(0,1,7))
ui <- fluidPage(
fluidRow(
column(width=4,pickerInput('input1','Select 1',names(df[,-1]))),
column(width=4,pickerInput('input2','Select 2',names(df[,-1]))),
plotOutput('plot')
))
server <- function(input, output, session) {
dt<-reactive({df%>%mutate(diff=input$input1-input$input2)})
output$plot<-renderPlot({ggplot(dt(),aes(date,diff))+geom_point()})
}
shinyApp(ui, server)```
答案 0 :(得分:0)
您可以将!!
与as.name
结合使用:
mutate( diff = !!as.name(input$input1) - !!as.name(input$input2) )