我对于Shiny和ggplot还是很陌生,所以我不确定是什么引起了该问题,并且我之前在此代码中发布了不同的问题,但是我遇到了一个新问题...当我运行我的绘图时,我遇到了一个新问题。没有出现,而是出现错误:警告:FUN中的错误:找不到对象“ total_pigs”。
无论我在selectInput "x"
函数中选择什么选项,我都会遇到此错误。
我在与app.R文件相同的目录中有一个单独的CSV文件。 selectInput(s)与CSV中的列和行匹配,我希望我的代码可以简单地读取其中存储的数据,并生成我的绘图点。
library(shiny)
library(ggplot2)
path <- file.path("eu_pigs.csv", stringsAsFactors = FALSE)
ui <- fluidPage(
titlePanel("Breeding Numbers 2016 - 2018 (pig)"),
sidebarLayout(
sidebarPanel(
selectInput(inputId = "x",
label = "Pig Breeds:",
choices = c("total_pigs", "female_breeding_herd",
"in_pig_sows", "in_pig_gifts", "other_sows",
"maiden_gilts", "boars_for_service", "other_pigs"),
selected = "total_pigs"),
selectInput(inputId = "y",
label = "Year by year change:",
choices = c(2016, 2017, 2018, sep = ""),
selected = 2016)
),
mainPanel(
plotOutput(outputId = "scatterplot")
)
)
)
server <- (function(input, output) {
output$scatterplot <- renderPlot({
ggplot(data = read.csv("eu_pigs.csv")) +
aes_string(x = input$x, y = input$y) +
geom_point()
})
})
shinyApp(ui, server)
我附上了csv文件的图像。
答案 0 :(得分:0)
正如DS_UNI所建议的那样,问题可能出在您的数据结构上。 ggplot2
希望使用整洁的数据,因此在这种情况下,这意味着每一行代表一个案例,即一年。
这是我认为您需要做的,尽管这是对您希望最终结果看起来像什么做出的一些假设!
第一步:读取csv中的数据争用
pigs_data <- read.csv("eu_pigs.csv")
第二步:将第一列设置为行名
row.names(pigs_data) <- pigs_data$pig_breeds
pigs_data[1] <- NULL
第三步:转置数据
pigs_data <- t(pigs_data)
然后您将在ggplot数据参数中使用pigs_data
。