逐列重复相同的功能并为每列添加额外的列

时间:2017-05-23 15:05:32

标签: r

我试图从每家公司的每日股票数据中找到每月最大值。我的数据在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)

现在,我想让所有公司每月最多一起,并为每家公司自动创建一个新的每月最高列。你能帮我这方面吗?

1 个答案:

答案 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。通常最好保持数据帧完整,以避免混淆。