How to rollapply over a multi column data table

后端 未结 2 1199
心在旅途
心在旅途 2021-01-15 01:20

I would like to use the rollapply function over a multi column datatable, namely I would like to be able to use each column independantly for instance let\'s consider the fo

2条回答
  •  迷失自我
    2021-01-15 01:21

    Just to add another option using data.table only

    library(data.table) # v1.9.6+
    

    Define the rolling mean function

    rollMean <- function(x, n) Reduce(`+`, shift(x, 0L:(n - 1L)))/n
    

    Apply it on multiple columns while specifying .SDcols

    DT[, lapply(.SD, rollMean, 3L), .SDcols = y:v]
    #           y  v
    # 1:       NA NA
    # 2:       NA NA
    # 3: 3.333333  2
    # 4: 3.333333  3
    # 5: 3.333333  4
    # 6: 3.333333  5
    # 7: 3.333333  6
    # 8: 3.333333  7
    # 9: 3.333333  8
    

提交回复
热议问题