我试图从每家公司的每日股票数据中找到每月最大值。我的数据在Excel中是这样的:
Date MSFT AAPL GOOGL
25-01-05 21.02984824 4.873362261 88.56
26-01-05 21.02176605 4.886889984 94.62
27-01-05 21.10258791 4.913269044 94.04
我可以设法通过每个公司的代码获得每月最高
attach(Historical_Stock_Prices_R)
rdate <- as.Date(Date1, "%d-%m-%y")
rCompanies <- c("rdate", "MSFT", "AAPL", "GOOGL")
Df<-data.frame(sdate = rdate, sMSFT = MSFT, SAAPL = AAPL, sGOOGLE = GOOGL)
monthlymaxMSFT <- tapply(MSFT, format(rdate, '%y-%m'), max)
monthlymaxGOOGL <- tapply(GOOGL, format(rdate, '%y-%m'), max)
现在,我想让所有公司每月最多一起,并为每家公司自动创建一个新的每月最高列。你能帮我这方面吗?
答案 0 :(得分:0)
如何使用aggregate
...
Historical_Stock_Prices_R$Date <- as.Date(Historical_Stock_Prices_R$Date, format="%d-%m-%y")
mMax <- aggregate(Historical_Stock_Prices_R[,-1],
by=list(Month=format(Historical_Stock_Prices_R$Date,"%y-%m")),
FUN=max)
顺便说一句,不鼓励使用attach
。通常最好保持数据帧完整,以避免混淆。