R 通过WDI加载世界银行数据的有效方法
我正在进行一个闪亮的仪表板项目,以可视化来自世界银行的数据。总共我需要14个不同的变量,我想在数据表中显示。它在R中工作,但当我尝试在shiny中工作时,我得到一个连接错误。我觉得下载的时间太长了。 有没有一种方法可以更有效地加载数据,或者在后台加载数据,或者其他方式?我找不到使其运行的解决方案,我不想将数据存储在服务器上的文件中,因为这样我就没有自动更新…:/ 这里有一个最基本的重要代码片段R 通过WDI加载世界银行数据的有效方法,r,shiny,shinydashboard,shinyapps,R,Shiny,Shinydashboard,Shinyapps,我正在进行一个闪亮的仪表板项目,以可视化来自世界银行的数据。总共我需要14个不同的变量,我想在数据表中显示。它在R中工作,但当我尝试在shiny中工作时,我得到一个连接错误。我觉得下载的时间太长了。 有没有一种方法可以更有效地加载数据,或者在后台加载数据,或者其他方式?我找不到使其运行的解决方案,我不想将数据存储在服务器上的文件中,因为这样我就没有自动更新…:/ 这里有一个最基本的重要代码片段 library(shiny) library(dplyr) library(WDI) library(
library(shiny)
library(dplyr)
library(WDI)
library(wbstats)
library(lubridate)
ui <- fluidPage(
titlePanel('WDI Example'),
mainPanel(tableOutput('table'))
)
server <- function(input, output) {
startDate <- as.numeric(format(Sys.Date(), "%Y")) -20
endDate <- as.numeric(format(Sys.Date(), "%Y"))
fetch.data <- list()
list <- c("SP.POP.TOTL",
"NY.ADJ.NNTY.PC.CD",
"SH.XPD.CHEX.PC.CD",
"SH.XPD.OOPC.CH.ZS",
"SH.MED.BEDS.ZS",
"SH.MED.PHYS.ZS",
"NY.GDP.MKTP.CD",
"NY.GDP.MKTP.KD",
"NY.GDP.MKTP.KD.ZG",
"SH.XPD.CHEX.GD.ZS",
"SP.DYN.LE00.IN",
"SP.POP.65UP.TO",
"SP.POP.DPND",
"SP.POP.DPND.OL")
for (i in 1:length(list)){
fetch.data[[i]] <- WDI(indicator = as.character(list[i]),
start = startDate,
end = endDate,
country = "all",
extra = TRUE)
}
data <- fetch.data
for (i in 1:length(list)){
data[[i]] <- subset(data[[i]], region != "Aggregates")
data[[i]] <- data[[i]] %>% select(country, iso3c, region, year, noquote(list[i]))
data[[i]]$date <- as.Date(as.character(date), format = "%Y")
data[[i]] <- data[[i]][complete.cases(data[[i]][ ,5]),]
data[[i]] <- data[[i]] %>% group_by(country) %>% arrange(desc(date)) %>% slice(1)
}
indicators <- fetch.data[[1]] %>%
select(country, iso3c, region) %>%
subset(region != "Aggregates") %>%
arrange(desc(country)) %>%
group_by(country) %>%
slice(1)
for (i in 1:length(list)){
indicators <- merge(indicators, data[[i]][ ,c(2,5)], by.x = "iso3c", by.y = "iso3c", all = TRUE)
}
indicators <- indicators %>%
arrange(country) %>%
mutate_if(is.numeric, round, 2)
output$table <- renderTable(indicators)
}
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(dplyr)
图书馆(WDI)
图书馆(wbstats)
图书馆(lubridate)
ui错误
您的错误在这行代码中:
data[[i]]$date您可以在问题中输入错误信息吗?不客气。如果你觉得答案有用,那么就考虑一下,这样其他有同样问题的人也能找到答案。