【问题标题】:Calculate diff in data.frame计算 data.frame 中的差异
【发布时间】:2015-07-27 17:50:33
【问题描述】:

我正在尝试从价格数据框计算回报。

diff((na.locf(precos_mes))

有些列的值是 NA,所以要删除它们,我使用 locf 函数,但是当我对其应用 diff 时,它会返回以下错误:

(list) object cannot be coerced to type 'double'

当我尝试取消列出它时,我会丢失每个股票向量的所有信息。

diff(as.numeric(unlist(na.locf(prices))))

【问题讨论】:

    标签: r


    【解决方案1】:

    试试

     lapply(precos_mes, function(x) diff(na.locf(x)))
    

    或者如果您不需要删除开头的 NA

     sapply(precos_mes, function(x) diff(na.locf(x, na.rm=FALSE)))
    

    数据

     set.seed(24)
     precos_mes <- as.data.frame(matrix(sample(c(NA,0:4), 20*5,
                  replace=TRUE), ncol=5))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 2020-04-13
      • 2019-03-08
      • 1970-01-01
      相关资源
      最近更新 更多