本文介绍了将多个函数应用于data.table中的多个列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图将多个功能应用于 data.table 的多个列。示例:

I am trying to apply multiple functions to multiple columns of a data.table. Example:

DT <- data.table("a"=1:5,
                 "b"=2:6,
                 "c"=3:7)

假设我要获得列 a b 的平均值和中位数。
这有效:

Let's say I want to get the mean and the median of columns a and b.This works:

stats <- DT[,.(mean_a=mean(a),
               median_a=median(a),
               mean_b=mean(b),
               median_b=median(b))]

但这太重复了。使用 .SDcols lapply 有什么好方法吗?

But it is way too repetitive. Is there a nice way to achieve a similar result using .SDcols and lapply?

推荐答案

我通常会这样做:

my.summary = function(x) list(mean = mean(x), median = median(x))

DT[, unlist(lapply(.SD, my.summary)), .SDcols = c('a', 'b')]
#a.mean a.median   b.mean b.median
#     3        3        4        4

这篇关于将多个函数应用于data.table中的多个列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 10:23