#' show economic indicators from tradingeconomics.com
#' @author lgm
#' @param indicator use `search_te_indicator()` to search the relative indicators. Several important indicators are: gdp, gdp-per-capita,money-supply-m2,interbank-rate
#' @param showall a switch whether to show all indicators from the website or not
#' @return df data
#' @export
#' @examples
#' search_te_indicator('gdp')
#' #[1] "government-debt-to-gdp" "households-debt-to-gdp" "private-debt-to-gdp" "gdp"
#' #[5] "gdp-annual-growth-rate" "gdp-growth-rate" "gdp-per-capita" "gdp-per-capita-ppp"
#' #[9] "gdp-constant-prices" "gdp-deflator" "current-account-to-gdp"
#'
#' get_te_data('gdp')
#'
#'
get_te_data <- function(indicator='gdp-per-capita'){
suppressWarnings(suppressPackageStartupMessages({
#library(stringr)
#library(tidyverse)
library(magrittr)
library(purrr)
library(rvest)
}))
link <- paste0("https://zh.tradingeconomics.com/country-list/",indicator)
link %>%
read_html %>%
html_nodes('table.table.table-hover') %>%
html_table() %>%
.[[1]] -> dat
head(dat)
names(dat) <- c('countries','value','previous','highest','lowest','unit','frequency')
return(dat)
}
# get all indicators from tradingeconomics.com and save it to data dir
# only run one time
scrape_te_indicators <- function(){
u <- 'https://tradingeconomics.com/indicators'
tradingeconIndicator <- u %>%
read_html() %>%
html_nodes('div.container > table a') %>%
html_attr('href') %>%
map(~gsub("/country-list/","",.x)) %>%
map(~gsub('/',"",.x)) %>%
unlist()
save(tradingeconIndicator,file='data/tradingeconIndicator.rda')
return(tradingeconIndicator)
}
# search indicators name for get data
#' @export
search_te_indicator <- function(index_name,showall=FALSE){
library(magrittr)
data(tradingeconIndicator)
if (showall==TRUE) {
res <- tradingeconIndicator
} else {
res <- tradingeconIndicator %>%
.[grepl(index_name,.,ignore.case = TRUE)]
}
return(res)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.