计算每组R的不同列数的行方式

时间:2017-02-07 01:52:00

标签: r data.table

我有一个data.table有422列,我需要计算跨行的平均值,但是这些列需要按照某个不相等的顺序进行分组。以下示例数据:

library(data.table)
m <- data.table(ID = LETTERS, GENE = paste("gene", 1:26, sep = ""), SAMPLE = paste(1, "A", sep = ""), REGION = "UNITED_STATES")

for (x in 1:418) set(m, i = NULL, j = paste("RUN", x, sep = ""), value = rnorm(nrow(m)))

需要按以下顺序对列进行分组:

breaks <- c(25, 25, 25, 20, 40, 40, 40, 32, 25, 25, 25, 20, 20, 20, 20, 16)

所以决赛桌将是data.table,前四个&#39;信息&#39;列后跟16列,每列具有上述中断的平均值。新表的16列是列的平均值(来自原始数据)1-25,26-50,51-75,76-95等。我知道如何计算所有列的行均值,我认为有一些方法可以用.SDcols做到这一点,但我不认为你可以像我想要的那样组织小组。

m[,.(Mean = rowMeans(.SD)), keyby = .(ID, GENE, SAMPLE, REGION)]

我也准备根据提议的方法,1:25,26:50等方式手工制作这些休息点,但在R中这样做会很好。

0 个答案:

没有答案