What is the most efficient way to sum all columns whose name starts with a pattern?

后端 未结 4 1459
南旧
南旧 2021-01-11 14:37

My goal is to sum all values in columns that start with the prefix skill_ in a data.table. I would prefer a solution using data.table

4条回答
  •  情话喂你
    2021-01-11 15:12

    Solution using data.table and .SDcols.

    require(data.table)
    
    DT <- data.table(x=1:4, skill_a=c(0,1,0,0), skill_b=c(0,1,1,0),
                     skill_c=c(0,1,1,1))
    
    DT[, row_idx := 1:nrow(DT)]
    
    DT[, count_skills := Reduce(`+`, .SD), .SDcols = patterns("skill_")]
    DT
    

提交回复
热议问题