R闪亮 - 正确使用输入变量,似乎是范围错误

时间:2014-11-18 21:32:32

标签: r shiny

我认为输入$ variable的范围有问题。以下是代码说明。

在我的ui.R文件中,我有一个selectInput,它定义了server.R文件中input $ variable所占的值。 selectInput如下:

selectInput("variable", "Variable:",
     c("Handling of Complaints" = "complaints",
       "Does not allow special privileges" = "privileges",
       "Opportunity to Learn" = "learning",
       "Raises based on Performance" = "raises",
       "Too Critical" = "critical",
       "Advancement" = "advance")),

在我的server.R文件中,我有一个renderUI,在qplot内部和内部使用此输入$变量,如下所示:

grid <- with(attitudeData, expand.grid(
     xgrid = seq(min(input$variable), max(input$variable), length = dim(attitudeData)[1]),
     ygrid = levels(sex)
    ))

ggattitude <- qplot(x=input$variable, y=rating, 
      data=attitudeData, color=sex) + geom_line(data=grid)

attitudeData是带有变量(也就是特征或预测变量)的数据框,其名称在selectInput中定义。

如果我使用任何变量名称,直接在其工作的代码中使用投诉,我的绘图将按照我想要的方式生成。但是使用输入$ variable 我无法让它工作。这就是为什么我认为这个问题与 input $ variable 的范围有关。

任何帮助都将不胜感激。

以下是我从闪亮中得到的错误,这对我没有多大帮助。

Error in seq.default(min(input$variable), max(input$variable), length = dim(attitudeData)[1]) :  'from' cannot be NA, NaN or infinite

如果我将输入$ variable替换为with中的投诉,则qplot中使用的错误如下:

Error in eval(expr, envir, enclos) : object 'complaints' not found

提前感谢我的帮助。

2 个答案:

答案 0 :(得分:0)

您可以添加印刷语句以阐明R看作输入的内容。在您的服务器文件中:

grid <- with(attitudeData, expand.grid(
     print(input$variable) 
     xgrid = seq(min(input$variable), max(input$variable), length = dim(attitudeData)[1]),
     ygrid = levels(sex)
    ))

ggattitude <- qplot(x=input$variable, y=rating, 
      data=attitudeData, color=sex) + geom_line(data=grid)

此输出将打印到R控制台。我觉得你的输入不是“投诉”。

答案 1 :(得分:0)

min("complaints")应该返回什么?因此,您将字符串作为参数添加到函数min(),如果这是您想要的,则它与min(complaints)不同。

或者还有其他一些问题:

  

xgrid = seq(min(输入$ variable),max(输入$ variable),length = dim(attitudeData)[1])

我想知道你是否真的想要这样做:

xgrid = seq(min(attitudeData[input$variable]), max(attitudeData[input$variable]), length = dim(attitudeData)[1])