簡體   English   中英

計算組聚合 R 中動態數量的列

[英]Compute group aggregates over a dynamic number of columns in R

我有一個類似於下表的大型數據集(進一步稱為results.raw ),其中包含一些獨立變量( X000X306 )和一些因變量(它們具有不同的名稱):

X000  X001  X002 ... X306  MEASURE1  OUT2  ... RESULTN
1     2     1        2     1         2         2
1     2     1        2     2         3         1
                 ...
2     3     1        4     5         3         3
                 ...

每當自變量相等時,我想平均這個數據集分組。 我想出了以下R命令,它似乎有效,但速度很慢

aggregate(results.raw, by = as.list(lapply(as.list(colnames(results.raw)[1:307]), FUN = function (x) { results.raw[,x] })), FUN = mean)

怎樣才能更快地做到這一點?

我們可以使用tidyverse

library(dplyr)
results.raw %>% 
    group_by_at(1:307) %>% 
    summarise_all(mean)

或者使用data.table

library(data.table)
setDT(results.raw)[, , lapply(.SD, mean), by = c(names(results.raw)[1:307])]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM