我正在尝试使用库(RJSONIO)导入BLS数据。 导入的数据位于数据框中,我可以使用ggplot绘制。
我无法将代码转换为闪亮的应用程序。
请指导我。
Server.R
library(shiny)
library(RCurl)
library(RJSONIO)
library(ggplot2)
bls.content <- getURLContent("http://api.bls.gov/publicAPI/v1/timeseries/data/CES6056132001")
bls.json <- fromJSON(bls.content, simplify=TRUE)
tmp <-bls.json$Results[[1]][[1]]
bls.df <- data.frame(year=sapply(tmp$data,"[[","year"),
period=sapply(tmp$data,"[[","period"),
periodName=sapply(tmp$data,"[[","periodName"),
value=as.numeric(sapply(tmp$data,"[[","value")),
stringsAsFactors=FALSE)
bls.df[bls.df$periodName!="Annual", ]
shinyServer(function(input, output) {
output$displot <- reactiveplot({
ggplot(data=bls.df, aes(x=year, y=value, group=period)),
gg <- ggplot(data=bls.df, aes(x=year, y=value, group=period)),
gg <- gg + geom_bar(stat="identity", position="dodge", aes(fill=period)),
gg
})
})
** ** UI.R
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("BLS data"),
sidebarPanel(
selectInput("dataset", "Commodity:",
))),
mainPanel(
h3(textOutput("commSelected")),
verbatimTextOutput("CommodityTable"),
plotOutput("CommodityPlot")
))
答案 0 :(得分:2)
你的代码写的方式有些问题,我会尝试解释最严重错误的位置。
的 ui.R 强>
shinyUI(pageWithSidebar(
headerPanel("BLS data"),
sidebarPanel(
selectInput("dataset", "Commodity:",c(1,2)
)),
mainPanel(
h3(textOutput("commSelected")),
verbatimTextOutput("CommodityTable"),
plotOutput("CommodityPlot")
))
)
关键问题在于:
<强烈> server.R 强>
library(shiny)
library(RCurl)
library(RJSONIO)
library(ggplot2)
bls.content <- getURLContent("http://api.bls.gov/publicAPI/v1/timeseries/data/CES6056132001")
bls.json <- fromJSON(bls.content, simplify=TRUE)
tmp <-bls.json$Results[[1]][[1]]
bls.df <- data.frame(year=sapply(tmp$data,"[[","year"),
period=sapply(tmp$data,"[[","period"),
periodName=sapply(tmp$data,"[[","periodName"),
value=as.numeric(sapply(tmp$data,"[[","value")),
stringsAsFactors=FALSE)
shinyServer(function(input, output) {
output$CommodityPlot <- renderPlot({
ggplot(data=bls.df, aes(x=year, y=value, group=period))
gg <- ggplot(data=bls.df, aes(x=year, y=value, group=period))
gg <- gg + geom_bar(stat="identity", position="dodge", aes(fill=period))
gg
})
})
这里的关键问题是:
现在,我已经调试了你的代码,它适用于我(我运行RStudio 0.98.978,闪亮版本0.10.1)。你的应用程序仍然非常不完整 - 你已经为你的verbatimTextOutput&#34; CommodityTable&#34;或者你的textOutput&#34; commSelected&#34;并且您的数据似乎甚至没有商品,因此我不知道您计划选择什么。闪亮的文档非常好 - 我强烈建议您访问the Shiny gallery以查看闪亮应用程序的工作示例以及驱动它们的代码。