减去数据框Shiny中的列

时间:2020-06-03 19:34:06

标签: r dplyr shiny

我有一个数据框。我想选择要减去的列并绘制结果列值。当我运行应用程序时,出现以下错误:

二进制运算符的非数字参数

我了解错误的含义,但我一直在努力寻找答案。有人可以救我脱离痛苦吗?

下面是代码:

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)```

1 个答案:

答案 0 :(得分:0)

您可以将!!as.name结合使用:

mutate( diff = !!as.name(input$input1) - !!as.name(input$input2) )