Я хочу простое приложение, которое генерирует график после прочтения файла CSV, для этого я следую документации, но я забыл о том, как связать новый файл с графиком.Мой ожидаемый результат на данный момент выглядит следующим образом:
Это код, который я использую для построения графика:
output$plot1 <- renderPlot({
ggplot(df, aes(x=LotArea, y=SalePrice)) + geom_point()
})
output$info <- renderPrint({
brushedPoints(df, input$LotArea, allRows = TRUE)
})
Но на данный момент я просто читаю файл в начале приложения.
df = read.csv("data/house_prices.csv")
df = select(df, "SalePrice","LotArea")
Пока я не нашел, как подключить этот график к загруженному файлу, поэтому каждый разфайл загружен, у меня должен быть другой сюжет.:
column(3,
fileInput("file1", "Choose CSV File",
accept = c(
"text/csv",
"text/comma-separated-values,text/plain",
".csv")
))
Это полный код:
library(shiny)
library(dplyr)
df = read.csv("data/house_prices.csv")
df = select(df, "SalePrice","LotArea")
ui <- fluidPage(
fluidRow(
column(3,
fileInput("file1", "Choose CSV File",
accept = c(
"text/csv",
"text/comma-separated-values,text/plain",
".csv")
)),
column(6,
plotOutput("plot1", click = "plot_brush")
),
mainPanel(
tableOutput("contents")
)
)
)
server <- function(input, output) {
options(width = 100) # Increase text width for printing table
output$plot1 <- renderPlot({
ggplot(df, aes(x=LotArea, y=SalePrice)) + geom_point()
})
output$info <- renderPrint({
brushedPoints(df, input$LotArea, allRows = TRUE)
})
output$contents <- renderTable({
inFile <- input$file1
if (is.null(inFile))
return(NULL)
read.csv(inFile$datapath)
})
}
shinyApp(ui, server)