R 如何在Shining应用程序上选择数据集?
这是我的第一个问题,因为我正在努力学习编程 我正在尝试制作一个闪亮的应用程序,根据用户选择的数据集进行绘图 然而,我一直得到以下错误:- ggplot2不知道如何处理类字符的数据 即使我将两个轴都指定为数字 当我自己运行R 如何在Shining应用程序上选择数据集?,r,ggplot2,shiny,reactive,R,Ggplot2,Shiny,Reactive,这是我的第一个问题,因为我正在努力学习编程 我正在尝试制作一个闪亮的应用程序,根据用户选择的数据集进行绘图 然而,我一直得到以下错误:- ggplot2不知道如何处理类字符的数据 即使我将两个轴都指定为数字 当我自己运行ggplot代码时,它使绘图没有问题,因此我认为问题在于调用数据集 我打电话来询问这个问题的基本数据集,但我需要一个答案,它可以解决我电脑上存储的数据集的问题 library(shiny) ui <- fluidPage( sidebarLayout
ggplot
代码时,它使绘图没有问题,因此我认为问题在于调用数据集
我打电话来询问这个问题的基本数据集,但我需要一个答案,它可以解决我电脑上存储的数据集的问题
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(selectInput("data", h4("select data"),
choices=c("mtcars" = "mtcars",
"pressure" = "pressure"))),
mainPanel(
PlotOutput("graph")
)
))
库(闪亮)
ui首先,输入$data
返回一个字符串。它不会返回与该字符串的值同名的data.frame。如果将data.frame作为字符串传递,则ggplot()
不起作用:
ggplot(mtcars, aes(mpg, cyl)) + geom_point() #OK
ggplot("mtcars", aes(mpg, cyl)) + geom_point() # NOT OK
也许可以尝试使用
base <- reactive ({get(input$data) })
这是因为它们是相同的
ggplot(mtcars, aes(cyl, disp)) + geom_point()
ggplot(mtcars, aes_string("cyl", "disp")) + geom_point()
ggplot(mtcars, aes_string(names(mtcars)[2], names(mtcars)[3])) + geom_point()
# since
names(mtcars)[2]
# [1] "cyl"
names(mtcars)[3]
# [1] "disp"
output$graph <- renderPlot({
mydata <- base()
ggplot(mydata, aes_string(names(mydata)[2], names(mydata)[3])) +
geom_col()
})
ggplot(mtcars, aes(cyl, disp)) + geom_point()
ggplot(mtcars, aes_string("cyl", "disp")) + geom_point()
ggplot(mtcars, aes_string(names(mtcars)[2], names(mtcars)[3])) + geom_point()
# since
names(mtcars)[2]
# [1] "cyl"
names(mtcars)[3]
# [1] "disp"