我正在尝试创建一个闪亮的应用程序,可以过滤制造商。但是它给我一个错误,即找不到对象。
我应该能够选择cyl和displ。然后键入audi,以便绘图仅显示奥迪的点。
这是服务器代码。
server.R
library(shiny)
library(ggplot2)
function(input, output) {
dataset<-reactive({mpg})
dataset1<-reactive({
x<-input$x
y<-input$y
data<-dataset
if (!is.null(input$z) && input$z != "") {
z <- paste0("%", input$z, "%")
data <- data + filter(manufacturer %like% z)
}
})
output$plot <- renderPlot({
p <- ggplot(dataset1(), aes_string(x=input$x, y=input$y))+geom_point()
print(p)
}, height=700)
}
和ui代码 的 ui.R
library(shiny)
library(ggplot2)
dataset <- mpg
fluidPage(
titlePanel("Manufacturer"),
sidebarPanel(
selectInput('x', 'X', names(dataset)),
selectInput('y', 'Y', names(dataset), names(dataset)[[3]]),
textInput('z','manufacturer name contains')
),
mainPanel(
plotOutput('plot')
)
)
这是我收到的错误:警告:eval错误:找不到对象'制造商'
任何人都可以帮忙吗?谢谢!
答案 0 :(得分:1)
如果您使用以下代码替换server.R
,我认为您将获得所需内容。
library(shiny)
library(ggplot2)
library(dplyr)
function(input, output) {
dataset <- mpg
dataset1<-reactive({
data<-dataset
if (!is.null(input$z) && input$z != "") {
data <- filter(data, manufacturer == input$z)
}
data
})
output$plot <- renderPlot({
ggplot(dataset1(), aes_string(x=input$x, y=input$y))+geom_point()
}, height=700)
}