如何修复 R 中 FRED 数据聚合 returns 的 LAG LOG 上的 NA 错误

How to fix NA error on the LAG LOG aggregated returns in R for FRED data

我很难理解为什么 apply.quarterly() 函数没有真正给我季度 returns 并返回 NA 以及为什么我的 diff(log()) 函数也不能处理 FRED 数据。也许我做错了什么,但我真的不明白是什么。有人可以帮我理解或解决这个问题吗?

我使用的代码:

library("quantmod")
#Getting FRED data exchange rate
setDefaults(getSymbols,src='FRED')
getSymbols('DEXNOUS')
#DEXNOUS <- as.data.frame(DEXNOUS)

#Getting SP500
getSymbols("^GSPC",src="yahoo")
GSPC <- as.data.frame(GSPC)

#Getting Brent blend oil
setDefaults(getSymbols,src='FRED')
getSymbols("POILBREUSDM",src = "FRED")
#POILBREUSDM <- as.data.frame(POILBREUSDM)

#Aggregating the data
GSPC_AVG_QUARTER<- apply.quarterly(GSPC,mean)

POILBREUSDM_AVG_QUARTER <- apply.quarterly(POILBREUSDM,mean)

DEXNOUS_AVG_QUARTER <- apply.quarterly(DEXNOUS,mean) #for some reason returning NA

#Calculating the log returns

n <- length(GSPC_AVG_QUARTER)
log_returns_GSPC_AVG_QUARTER <- diff(log(GSPC_AVG_QUARTER$GSPC.Adjusted))

ns <- length(POILBREUSDM_AVG_QUARTER)
log_returns_POILBREUSDM_AVG_QUARTER <- diff(log(POILBREUSDM_AVG_QUARTER)) 

nd <- length(DEXNOUS_AVG_QUARTER)
log_returns_DEXNOUS_AVG_QUARTER <- diff(log(DEXNOUS_AVG_QUARTER)) #na

汇总数据的结果片段:

差异日志结果的片段 returns:

如果有人能帮我解决这个问题,我将不胜感激。

注意:我在 CET 14/02/2022 22:28 编辑了此 post 上的代码,但我仍然收到关于汇率的 FRED 数据的错误。

进行这些更改:

  • 不要将 xts 对象转换为数据帧
  • 建议不要使用setDefaults
  • n、ns 和 nd 未使用,这些行已删除。
  • 添加 na.rm = TRUE 表示
  • 使用 Ad(...) 提取调整后的列
  • 已清理格式

这给了

library(quantmod)

getSymbols('DEXNOUS', src = 'FRED')
getSymbols("^GSPC", src = "yahoo")
getSymbols("POILBREUSDM", src = "FRED")

GSPC_AVG_QUARTER <- apply.quarterly(GSPC, mean, na.rm = TRUE)
POILBREUSDM_AVG_QUARTER <- apply.quarterly(POILBREUSDM, mean, na.rm = TRUE)
DEXNOUS_AVG_QUARTER <- apply.quarterly(DEXNOUS, mean, na.rm = TRUE)

log_returns_GSPC_AVG_QUARTER <- diff(log(Ad(GSPC_AVG_QUARTER)))
log_returns_POILBREUSDM_AVG_QUARTER <- diff(log(POILBREUSDM_AVG_QUARTER)) 
log_returns_DEXNOUS_AVG_QUARTER <- diff(log(DEXNOUS_AVG_QUARTER))

#######

head(log_returns_GSPC_AVG_QUARTER, 3)
##            GSPC.Adjusted
## 2007-03-30            NA
## 2007-06-29   0.049843241
## 2007-09-28  -0.005164808

head(log_returns_POILBREUSDM_AVG_QUARTER, 3)
##            POILBREUSDM
## 1990-03-01          NA
## 1990-06-01  -0.2181184
## 1990-09-01   0.5069333

head(log_returns_DEXNOUS_AVG_QUARTER, 3)
##                 DEXNOUS
## 1971-03-31           NA
## 1971-06-30 -0.003084078
## 1971-09-30 -0.015590386