在 R 中使用 getSymbols 函数时出现错误警告

时间:2021-04-12 17:48:27

标签: r quantmod

我正在尝试使用以下代码从雅虎财经获取比特币数据:

getSymbols("BTC-USD",from= "2020-01-01",to="2020-12-31",warnings=FALSE,auto.assign = TRUE)
BTC-USD=BTC-USD[,"BTC-USD.Adjusted"]

但是,我收到以下错误:

警告信息:

BTC-USD contains missing values. Some functions will not work if objects contain missing values in the middle of the series. Consider using na.omit(), na.approx(), na.fill(), etc to remove or replace them.

我该如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:2)

您遇到了第一个问题,即您试图分配给无效符号。使用 _ 代替减法运算符 -。如果您真的想要-,您可以在符号周围使用反引号。

然后您可以使用 is.na 查找 NA 值并将其替换为 0。

library(quantmod)
getSymbols("BTC-USD",from= "2020-01-01",to="2020-12-31",warnings=FALSE,auto.assign = TRUE)
BTC_USD <- `BTC-USD`[,"BTC-USD.Adjusted"]
BTC_USD[is.na(BTC_USD)] <- 0

BTC_USD[100:110,]
#           BTC-USD.Adjusted
#2020-04-09         7302.089
#2020-04-10         6865.493
#2020-04-11         6859.083
#2020-04-12         6971.092
#2020-04-13         6845.038
#2020-04-14         6842.428
#2020-04-15         6642.110
#2020-04-16         7116.804
#2020-04-17            0.000
#2020-04-18         7257.665
#2020-04-19         7189.425

更好的计划可能是删除 NA 行而不是用 0 替换它们:

BTC_USD <- BTC_USD[!is.na(BTC_USD),]
相关问题