I am building a shiny app and I need to subset a dataframe based on a user input. I have tried many different ways to do this but I keep running into errors. Currently, this seems to be the simplest method but I get the following error:
Warning in is.na(e2) : is.na() applied to non-(list or vector) of type 'closure'
Error in ==.default
(test$MARKET, var) : comparison (1) is possible only for atomic and list types
I am pretty stuck. Does anyone have some guidance for me? Thanks!
library(shiny)
shinyServer(function(input, output) {
var <- reactive({input$var})
subsetTest <- subset(test, test$MARKET==var)
y <- subsetTest()$PRICE
x <- subsetTest()$DATE
output$ngplot <- renderPlot({
print(ggplot(data=subsetTest(), aes(x=y, y=x)) + geom_line())
})
})
First, in the subset
call you can skip out test$
(not the cause of your problem):
subset(test, MARKET==var)
I suspect your problem is that var
is not a string, it is the output of reactive
. Try getting the value with var()
instead of var
subset(test, MARKET==var())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With