Rを使用してAPPL株データの毎年の算術平均および日次幾何平均を求めようとしています。最後の数行は動作しないようですが、誤った文脈で使用される '...'というエラーが出ます。毎年の算術演算および毎日の幾何平均値(AAPL)
希望の出力が得られるようにコードを変更するにはどうすればよいですか?いくつかの助けが深く感謝されます。
# Get historical price data (daily)
getSymbols('AAPL', from = "2005-01-01")
AAPLdaily <- as.data.frame(AAPL)
head(AAPLdaily)
?to.period
# AAPLweekly <- to.weekly(to.weekly(AAPL, indexAt = 'endof'))
# AAPLweekly <- as.data.frame(AAPLweekly)
# Better to do it in one step like this:
AAPLweekly <- as.data.frame(to.weekly(AAPL, indexAt = 'endof'))
head(AAPLweekly)
AAPLmonthly <- as.data.frame(to.monthly(AAPL, indexAt = 'endof'))
head(AAPLmonthly)
AAPLyearly <- as.data.frame(to.yearly(AAPL, indexAt = 'endof'))
AAPLyearly
# Another way to do this
AAPLweekly1 <- as.data.frame(to.period(AAPL, period = 'weeks', indexAt = 'endof'))
head(AAPLweekly1)
AAPLmonthly1 <- as.data.frame(to.period(AAPL, period = 'months', indexAt = 'endof'))
head(AAPLmonthly1)
AAPLyearly1 <- as.data.frame(to.period(AAPL, period = 'years', indexAt = 'endof'))
head(AAPLyearly1)
########## Another possible method #########
# Change to data.frames
AAPL = as.data.frame(AAPL)
head(AAPL)
# Get Dates
dates <- as.Date(row.names(AAPL))
head(dates)
# Create a cloumn in APPL data frame with the dates
AAPL$dates <- as.Date(row.names(AAPL))
?aggregate
?substr
# Last Day of month
lastDayofMonth <- aggregate(AAPL["dates"], list(month = substr(AAPL$dates, 1, 7)), max)
head(lastDayofMonth)
AAPLmonth <- AAPL[dates %in% lastDayofMonth$dates, ]
head(AAPLmonth)
# Last day of year
lastDayofYear <- aggregate(AAPL["dates"], list(month = substr(AAPL$dates, 1, 4)), max)
head(lastDayofYear)
AAPLyear <- AAPL[dates %in% lastDayofYear$dates, ]
AAPLmonth
AAPLdaily <- as.data.frame(to.daily(AAPL, indexAt = 'endof'))
AAPLdaily
dailyReturn(AAPLdaily)
periodReturn(AAPL,
period='daily',
subset=NULL,
type='arithmetic',
leading=TRUE,
...
)
'' 'yearlyReturn(AAPLdaily)' ''これはあなたが必要とするものですか? –
@GeorgeSotiropoulosはい、各年の出力が、それぞれの対応する年の毎日の収益であり、算術平均によって計算されます。しかし、これは各年の幾何平均を与えるものではありません。 – Stoner