我认为输入$ 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
提前感谢我的帮助。
答案 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])