将两个向量rownames组合成一个列表

时间:2015-12-08 17:52:57

标签: r

我通过两个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,所以我可以让共同基金符号与开始和结束数据可用性保持一致。几个星期前我没有发出强制警告就完成了这项操作。如何在不创建列表的情况下创建包含共同基金符号和关联日期的数据框?

1 个答案:

答案 0 :(得分:1)

我们可以尝试

library(dplyr)
allEMNLSEFundsWithSymbols %>%
      group_by(Symbol) %>% 
      summarise(Min = min(first_offer_dt), Max = max(caldt))