首页 > 解决方案 > 从 R 中的 data.frame 对象中提取元素

问题描述

对于每个国家/地区(“BR”、“MX”、“RU”),我想创建一个包含三列的 data.frame 对象:@INDICATOR、@TIME_PERIOD 和 @OBS_VALUE。

library(IMFData)

IRFCL.available.codes <- DataStructureMethod("IRFCL")
names(IRFCL.available.codes)
indicators_IRFCL <- IRFCL.available.codes[[3]]

databaseID <- "IRFCL"
startdate = "2006-01-01"
enddate = " "
checkquery = FALSE

queryfilter <- list(CL_FREQ = "Q", CL_AREA_IRFCL = c("BR", "MX", "RU"), CL_INDICATOR_IRFCL = "", CL_SECTOR_IRFCL = "")
RESERVES <- CompactDataMethod(databaseID, queryfilter, startdate, enddate, checkquery)

在里面RESERVES,可以找到@INDICATOR 和Obs(其中包含每个@INDICATOR 的@TIME_PERIOD 和@OBS_VALUE)。

标签: rdataframe

解决方案


你可以做:

library(IMFData)
library(dplyr)

RESERVES <- CompactDataMethod(databaseID, queryfilter, startdate, enddate, checkquery, tidy = T)

接着


RESERVES %>%
  select(`@REF_AREA`, `@TIME_PERIOD`, `@INDICATOR`, `@OBS_VALUE`) %>%
  group_by(`@REF_AREA`) %>%
  group_split(keep = F) -> list_of_tibbles

这样你就可以得到一个 data.frames (tibbles) 的列表


推荐阅读