2014-04-29 51 views
4

我正在构建一个有光泽的应用程序,我需要根据用户输入对数据框进行子集化。我尝试了很多不同的方式来做到这一点,但我一直在遇到错误。目前,这似乎是最简单的方法,但我得到以下错误:R Shiny - 基于无功输入的子集数据帧

is.na(e2)中的警告:is.na()适用于'closure'类型的非(列表或向量) ==.default(test $ MARKET,var)中的错误:比较(1)仅适用于原子和列表类型

我很困难。有人对我有一些指导吗?谢谢!

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()) 
    }) 
}) 

回答

8

首先,在subset呼叫时,可以跳过了test$(不是你的问题的原因):

subset(test, MARKET==var) 

我怀疑你的问题是,var不是字符串,它是输出reactive。尝试使用var()代替var

subset(test, MARKET==var())