在R中提取pedquant获取的USDCNY数据close列失败,求解决方法
解决pedquant提取USDCNY汇率close列的问题
首先先确认你的cny对象的结构,先运行这两行代码查看:
class(cny) str(cny)
pedquant的md_forex()函数默认返回的是分组tibble或包含多数据表的列表,这就是直接用cny$close或cny[,7]提取失败的核心原因。下面是几种针对性的解决办法:
如果返回的是分组tibble:
先取消分组再提取列,两种实现方式:# 用dplyr的方式 library(dplyr) cny_close <- cny %>% ungroup() %>% pull(close) # 不用dplyr的方式 cny_close <- as.data.frame(cny)$close如果返回的是列表(比如包含多市场数据):
先提取列表内的数据框元素,再取对应列:# 假设第一个列表元素是USDCNY的目标数据 cny_close <- cny[[1]]$close先确认列名是否准确:
有时候列名可能存在大小写或隐藏空格问题,先查看完整列名:# 如果是单数据表对象 names(cny) # 如果是列表对象 names(cny[[1]])再用准确的列名提取,比如列名实际是
"Close"的话:cny_close <- cny[["Close"]]
另外,你也可以在调用md_forex()时直接指定返回普通数据框,后续就能直接用常规方式提取列:
cny <- md_forex('usdcny', output = "data.frame") # 之后直接用cny$close即可提取
内容的提问来源于stack exchange,提问作者Bubbles
相关产品推荐
相关产品推荐

