Micah Ondiwa
Micah Ondiwa

Reputation: 69

Error warning while using the getSymbols function in R

I am trying to obtain Bitcoin data from yahoo finance using the following code:

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

However, I get the following error:

Warning message:

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.

How can I fix this?

Thanks.

Upvotes: 1

Views: 963

Answers (1)

Ian Campbell
Ian Campbell

Reputation: 24878

You've got a first problem which is you're trying to assign to an invalid symbol. Use _ instead of - which is the subtraction operator. If you really want the -, you can use backticks around the symbol.

Then you can use is.na to find the NA values and replace them with 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

A better plan is probably to just remove the NA rows instead of replacing them with 0:

BTC_USD <- BTC_USD[!is.na(BTC_USD),]

Upvotes: 3

Related Questions