我是 R 的初學者,嘗試使用“ comtradr ”包對 UN Comtrade 資料進行一些分析。
作為背景,該軟體包呼叫了 Comtrade 資料庫中的資料(例如 1992 - 2021 年中國魚類出口)。
我知道我想做什么,但正在努力弄清楚如何去做。
用簡單的語言,對于串列中的國家(國家串列如下),我想提取匯入資料,然后使用 ct_search 函式提取匯出資料。
然后,我希望選擇相關的列,并在兩個單獨的折線圖中繪制每個國家的進口/出口。
country_list <- list("China", "United States", "India")-- 這應該填充 ct_search 函式中的記者欄位。
trade_list <- list("exports", "imports")-- 這應該填充 ct_search 函式中的 trade_direction 欄位。
我可以為單個國家/地區執行此操作,如下所示,并且可以復制粘貼每個國家/地區的代碼,但我知道這效率不高。
我猜這是創建函式 for 回圈的混合體,但我不知道如何在 R 中做到這一點 .. 誰能舉個例子?它是直截了當的嗎?因此,理想情況下,輸出將是六塊土地——一個進口地塊,然后是中國、美國和印度的出口地塊。
非常感謝任何幫助!
--
library(tidyverse)
library(comtradr)
df <- ct_search(
reporters = "China",
partners = "World",
trade_direction = "exports",
freq = "annual",
commod_codes = "030520",
type = "goods"
)
df2 <- df %>%
select(year, qty, trade_value_usd)
ggplot(data = df2, aes(x = year, y = qty))
geom_line(size = 1)
geom_point(size = 2)
theme_bw()
uj5u.com熱心網友回復:
您不必遍歷您的國家和貿易方向來獲取您的資料,因為它
ct_search允許傳遞字符向量 (!!),即使用c而不是list. 請注意,例如,"United States"您必須使用"USA".要為每個國家/地區創建圖表,您可以
split按國家/地區劃分資料,將繪圖代碼放入函式purrr::imap中并使用例如回圈國家資料串列。使用imap可以很容易地將國家名稱作為第二個引數傳遞給我添加為繪圖示題的繪圖函式。我沒有使用單獨的進出口facet_wrap圖來為每個國家/地區創建進出口圖。
library(tidyverse)
library(comtradr)
country_list <- c("China", "United States" = "USA", "India")
trade_list <- c("exports", "imports")
df <- ct_search(
reporters = country_list,
partners = "World",
trade_direction = trade_list,
freq = "annual",
commod_codes = "030520",
type = "goods"
)
df2 <- df %>%
select(year, qty, trade_value_usd, reporter, trade_flow)
plot_fun <- function(.data, cntry) {
ggplot(data = .data, aes(x = year, y = qty))
geom_line(size = 1)
geom_point(size = 2)
facet_wrap(~trade_flow)
theme_bw()
labs(title = cntry)
}
df2 %>%
split(.$reporter) %>%
purrr::imap(plot_fun)
#> $China

#>
#> $India

#>
#> $USA

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/510411.html
上一篇:同時回圈遍歷多個串列?
