ID 1,2および3とVALUE列を持つdata.table
があるとします。統計を計算したいサブセットを定義するこれらのIDの順列のリストもあります。例えば。グループ化変数のリストに対する列の集約
library(data.table)
DT <- data.table(ID = c(1,1,2,2,3,3),VALUE = c(1,2,10,20,100,200))
permutations <- list(c(1,2),c(2,3),c(1,3))
がどのように生成することができ、所望の出力
permutation MEAN
1 8.25
2 82.5
3 75.75
:{1,2}、{2、3}、{1、3}に三つのグループのIDの値の平均値を計算しますループまたはapply
のない私の擬似コードは次のようになりますが、もちろんそれは動作しません:
DT[,.(MEAN = mean(VALUE)),by = .(ID %in% permutations)]
それがループまたはコールせずに適用することを行うことは可能ですか?私のテーブルにはとても長い時間がかかります。基地Rアプローチはなり
[=に、スタック(setNames(順列、seq_along(順列)))。(ID =値)] 'DTを試し[。(平均=平均(値))=によって(順列= ind)] ' – akrun
@akrun私はこれが最良の方法であり、投稿する価値があると思います。 – Frank