我通过两个tapply操作创建了一个R对象:
#getting first offer date for each fund
firstOfferDtByFund <- tapply(allEMNLSEFundsWithSymbols$first_offer_dt, allEMNLSEFundsWithSymbols$Symbol, min)
head(firstOfferDtByFund)
AANNX AASAX AASFX ACDHX ACDJX
NA 20100803 20081105 20080303 20111031 20111031
#getting the last date for each fund
lastDtByFund <- tapply(allEMNLSEFundsWithSymbols$caldt, allEMNLSEFundsWithSymbols$Symbol, max)
head(lastDtByFund)
AANNX AASAX AASFX ACDHX ACDJX
NA 20131231 20121231 20121231 20131231 20131231
然后我将这两个对象组合起来创建一个对象,其中包含可用于各种共同基金数据的第一个和最后一个日期。
#now to combine the output
fundDateRange <- (cbind(firstOfferDtByFund,lastDtByFund))
head(fundDateRange)
firstOfferDtByFund lastDtByFund
NA NA
AANNX 20100803 20131231
AASAX 20081105 20121231
AASFX 20080303 20121231
ACDHX 20111031 20131231
ACDJX 20111031 20131231
一切运作良好,但当我尝试将共同基金符号分配给组合对象时,我收到系统试图强制列表的强制信息
fundDateRange$Symbol <- rownames(fundDateRange)
警告讯息:
在fundDateRange $ Symbol&lt; - rownames(fundDateRange):强制LHS到列表
我不是要创建一个列表,只是一个矩阵或data.frame,所以我可以让共同基金符号与开始和结束数据可用性保持一致。几个星期前我没有发出强制警告就完成了这项操作。如何在不创建列表的情况下创建包含共同基金符号和关联日期的数据框?
答案 0 :(得分:1)
我们可以尝试
library(dplyr)
allEMNLSEFundsWithSymbols %>%
group_by(Symbol) %>%
summarise(Min = min(first_offer_dt), Max = max(caldt))