我想使用tidyquant包(或任何其他包)從雅虎檢索財務資料。
為了檢索微軟(指數:MSFT)的收盤價,以下代碼可以正常作業:
#load packages
library(tidyquant)
#acquire monthly average stock prices
getSymbols("MSFT", from = "2000-08-01", to = "2021-07-31", src = 'yahoo', periodicity = 'daily')
output <- aggregate(MSFT$MSFT.Close, list(format(index(MSFT), "%Y-%m")), mean)
colnames(output) <- c('ClosingPrice')
#create time series for closing stock prices
price = ts(output$ClosingPrice, frequency=12, start=c(2000,08))
summary(price)
但是,對于檢索原油價格(指數:CL=F),它不起作用,因為指數包含特殊字符。更具體地說,我在這里收到一條錯誤訊息:
#acquire monthly average stock prices
getSymbols("CL=F", from = "2000-08-01", to = "2021-07-31", src = 'yahoo', periodicity = 'daily')
output <- aggregate(CL=F$CL=F.Close, list(format(index(MSFT), "%Y-%m")), mean)
有誰知道如何解決這個問題?非常感謝!
uj5u.com熱心網友回復:
帶有特殊字符的物件名稱可以反引號。另外,如果有NA值,指定na.rm = TRUE沿na.action = NULL作為aggregate可除去整行,如果有NA任何列
out <- aggregate(`CL=F`$`CL=F.Close`, list(format(index(`CL=F`), "%Y-%m")),
mean, na.rm = TRUE, na.action = NULL)
-輸出
> head(out)
2000-08 32.54571
2000-09 33.87100
2000-10 32.97318
2000-11 34.26450
2000-12 28.35500
2001-01 29.26667
> tail(out)
2021-02 59.06105
2021-03 62.35739
2021-04 61.70381
2021-05 65.15700
2021-06 71.35273
2021-07 72.43048
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/368521.html
