我从 API API ANBIMA 获得了一个小标题,它将数据放入两列中,一列包含我想要成为行的变量的名称,另一列包含值。我试图将第一列放入列表中,过滤唯一值,粘贴到扩展命令中,但我不能做第一件事,那就是创建一个列表。当我尝试时,我会得到一个包含一个观察结果的字符列表。
数据有 15 个变量,它们在第一列中重复,改变第二列的值
编辑:
就像建议的那样,这是 dput(head(x, 20)
的输出dput(head(dados, 20))
structure(list(name = c("tipo_titulo", "expressao", "data_vencimento",
"data_referencia", "codigo_selic", "data_base", "taxa_compra",
"taxa_venda", "taxa_indicativa", "intervalo_min_d0", "intervalo_max_d0",
"intervalo_min_d1", "intervalo_max_d1", "pu", "desvio_padrao",
"tipo_titulo", "expressao", "data_vencimento", "data_referencia",
"codigo_selic"), value = c("LTN", "Taxa (% a.a.)/252", "2023-01-01",
"2022-12-06", "100000", "2016-01-20", "13.7107", "13.6952", "13.7027",
"13.5377", "13.9248", "13.5338", "13.9233", "990.36449", "0.00259307377643",
"NTN-F", "Taxa (% a.a.)/252", "2023-01-01", "2022-12-06", "950199"
)), row.names = c(NA, 20L), class = c("tbl_df", "tbl", "data.frame"
))
我下班在桌面上,所以无法访问主机上传数据,我会放一张显示小标题格式的图片
要访问的 API 信息位于此处:https://developers.anbima.com.br/en/visao-geral/autenticacao/#oauth2
为了获得小标题,我使用了代码:
library(httr)
library(jsonlite)
library(tidyverse)
library(stringr)
library(tibble)
library(bizdays)
client_id <- ''
client_secret <- ''
token_anbima <- base64_enc(str_c(client_id, ':', client_secret))
resposta_anbima <- POST("https://api.anbima.com.br/oauth/access-token",
add_headers("Authorization" = str_c("Basic ", token_anbima)),
body = list(grant_type = "client_credentials"),
encode = 'form'
)
resposta_anbima$status
access_token <- str_sub(content(resposta_anbima, "text"), start = 18, end = 29)
data_tpf <- preceding(Sys.Date(), 'Brazil/ANBIMA')
teste <- GET(str_c('https://api-sandbox.anbima.com.br/feed/precos-indices/v1/titulos-publicos/mercado-secundario-TPF?data=',
data_tpf),
add_headers("client_id" = client_id,
"access_token" = access_token))
dados <- enframe(unlist(content(teste)))
将
pivot_wider
与 unnest
结合使用,但不完全确定这是否是您所需要的。
library(tidyr)
pivot_wider(dados, names_from=name, values_from=value, values_fn=list) %>%
unnest(everything())
# A tibble: 2 × 15
tipo_titulo expressao data_…¹ data_…² codig…³ data_…⁴ taxa_…⁵ taxa_…⁶ taxa_…⁷
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 LTN Taxa (% a… 2023-0… 2022-1… 100000 2016-0… 13.7107 13.6952 13.7027
2 NTN-F Taxa (% a… 2023-0… 2022-1… 950199 2016-0… 13.7107 13.6952 13.7027
# … with 6 more variables: intervalo_min_d0 <chr>, intervalo_max_d0 <chr>,
# intervalo_min_d1 <chr>, intervalo_max_d1 <chr>, pu <chr>,
# desvio_padrao <chr>, and abbreviated variable names ¹data_vencimento,
# ²data_referencia, ³codigo_selic, ⁴data_base, ⁵taxa_compra, ⁶taxa_venda,
# ⁷taxa_indicativa