将多个函数应用于 data.table 中的多个列 [英] Apply multiple functions to multiple columns in data.table

查看:29
本文介绍了将多个函数应用于 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)

假设我想获得 ab 列的平均值和中位数.这有效:

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))]

但它太重复了.有没有使用 .SDcolslapply 实现类似结果的好方法?

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 中的多个列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆