我不明白如何在R的大df上分组.

第0-12列是唯一的标识符,我想让它们保持原样

我已经try 了很多不同的方法

aggregate(cbind(names(preferences[-c(0, 12)])) ~ 
            cbind(names(preferences[c(0, 12)])), data=preferences, FUN=sum)

我要走了

Error in model.frame.default(formula = cbind(names(preferences[-c(0, 12)])) ~  : 
  variable lengths differ (found for 'cbind(names(preferences[c(0, 12)]))')

a  b     c   d   e
1  f(1)  11  2   15
1  f(1)  12  2   15
2  f(2)  13  4   3
2  f(2)  14  6   4
3  f(3)  15  5   6

a  b     c   d   e
1  f(1)  23  4   30
2  f(2)  27  10  7
3  f(3)  15  5   6

Python类似功能df[11:624].groupby(by=col11)

df是48GB,所以速度很重要(python因内存不足而崩溃(250GB))

收到answer分后,我go 看了benchmarks分,这真是太快了!!!!

推荐答案

library(data.table)

setDT(df)

x <- names(df)[13:ncol(df)]

y <- names(df)[1:12]

df_2 <- df[, lapply(.SD, \(i) sum(i)), .SDcols=x, by=y]

不过要注意R和Python中的索引.R从1开始计数(而Python没有索引)

R相关问答推荐

按R中不同长度的组将日期时间列值四舍五入到小时

R:如何在没有for循环的情况下替换多边形几何中的值?

如何计算新变量中的通货inflating 率?

如果索引重复,聚合xts核心数据

使用ggplot将平滑线添加到条形图

terra nearest()仅为所有`to_id`列返回NA

r—绘制相交曲线

R s iml包如何处理语法上无效的因子级别?'

将数字转换为分钟和秒

使用整齐的计算(curl -curl )和杂音

如何得到每四个元素向量R?

使用R中的正则表达式将一列分割为多列

如何在R中平滑地绘制线图(不拟合)?

使用R中的dist()迭代ID匹配的欧几里德距离

按组计算列中1出现的间隔年数

远离理论值的伽马密度曲线下面积的近似

随机 Select 的非NA列的行均数

在ggploy中创建GeV分布时出错

随机将数据帧中特定列上的某些行设置为NA

使用ggplot2绘制具有边缘分布的坡度图