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