R:加权计算得到参数的无效“类型”(字符)

时间:2016-03-31 17:02:22

标签: r dplyr weighted-average

我有以下数据集:

    Date                 sector Forward TRT1Y USD CIQ MKVAL
  (time)                 (fctr)             (dbl)     (dbl)
1 1999-09-30 Consumer Discretionary        0.11622590 19856.182
2 1999-09-30            Industrials       -0.13436770     0.000
3 1999-09-30            Industrials        0.09085045     0.000
4 1999-09-30             Financials        0.69653463  6142.963
5 1999-09-30 Consumer Discretionary        0.00000000     0.000
6 1999-09-30             Financials        1.61538458  1510.159
7 1999-09-30             Financials        0.27569774     0.000
8 1999-09-30            Industrials       -0.33099464     0.000
9 1999-09-30 Consumer Discretionary        0.38051024 61308.492
10 1999-09-30           Industrials        0.07535502     0.000

日期是每季度,并持续到2015年12月31日。另外,这是结构:

Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   97136 obs. of  4 variables:
 $ Date             : POSIXct, format: "1999-09-30" "1999-09-30" "1999-09-30" 
 $ sector           : Factor w/ 11 levels "Consumer Discretionary",..: 8 6 7 4 
 $ Forward TRT1Y USD: num  0.1162 -0.1344 0.0909 0.6965 0 ...
 $ CIQ MKVAL        : num  19856 0 0 6143 0 ...

我正在尝试根据'CIQ MKVAL'创建一个重量列,并希望按日期和行业进行加权。然后,权重将帮助我得出每个部门和每个日期的加权平均前向TRT1Y。这是权重函数:

weight <- function(x) x/sum(x)

这是我用来查找加权并按日期和扇区拆分数据的代码

ddply(wMean1, .(Date,sector), transform, w=weight('CIQ MKVAL'))

但是,当我运行代码时,我收到以下错误:

Error in sum(x) : invalid 'type' (character) of argument

我在这个网站找到了一些东西:http://www.r-bloggers.com/type-conversion-and-you-or-and-r/我相信在进行上述计算时它会将我的数字字段转换为字符。我是R的新手,我还没有想出办法解决这个问题。有人有什么建议吗?

0 个答案:

没有答案