是否可以在大型数据集中使用列号而不是列名来聚合data.table?

Orhan作者

我正在尝试聚合一个data.table。更确切地说,我想有一个202列的data.table,我想aggregate(dt[,131:202]~dt[,1:130],data=dt,FUN=sum)这是一个data.table,因此您可以尝试执行此操作。

A <- c(1,2,3,4,4,6,4)
B <- c("a","b","c","d","e","f","g")
C <- c(10,11,23,8,8,1,3)
D <- c(2,3,5,9,7,8,4)
E <- c(2,5,7,1,4,6,15)
G <- c("b","f","s","k","t","r","n")
H <- c(2,68,5,27,11,17,4)


dt <- data.table(A,B,C,D,E,G,H)
阿克伦

data.table选项将指定中的关注列.SDcols,将中的列分组by,遍历.SD(data.table的子集)并获取sum

dt[, lapply(.SD, sum), by = c(names(dt)[1:130]), .SDcols = 131:202]

数据

set.seed(24)
d1 <- as.data.frame(matrix(sample(LETTERS[1:7], 130*20, replace = TRUE),
        20, 130), stringsAsFactors=FALSE)
d2 <- as.data.frame(matrix(sample(1:20, 130*20, replace = TRUE), 20, 
       130), stringsAsFactors=FALSE)
dt <- data.table(d1, d2)
names(dt) <- make.unique(names(dt))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用data.table时,请通过在另一列中使用数字来引用列号。

是否可以在 R 中使用带有 data.table 的 SET 分配多个列/值?

使用 R 和 Table 函数,我可以使用更大数据集中的 4 个特定列来创建一个二乘二的频率表吗?

使用Data.table r在大型data.tables中聚合具有不同公式的多个列

在data.table列中使用列表

将列名称与R中的列数据连接起来(使用data.table)

R data.table聚合数据

在j列中聚合为字符串列名称data.table

是否可以在facet_grid()中使用geom_table()?

使用runif来计算data.table中的列

可以在管道中使用data.table的rbindlist

在查询Cassandra中使用实体类名称而不是@Table(“ table_name”)的Spring Data

当使用`data.table`的DT [i,j,by]时,是否可以事先设置列类型?

是否可以在SparkR和datadatatable上使用data.table?

是否可以以R中的变量形式在data.table中的列名上传递变量

是否可以将带有前缀i的空格的列名用于data.table连接?

在R中的Data.table中使用Data.table

data.table和列名

使用%in%来子集data.table

psycopg2使用列名而不是列号来获取行数据

使用data.table,可以通过在组中重复前X个值来创建新列

如何在 Table of Table 类型(矩阵表)中使用 EXISTS 方法来查找值是否存在

按组在data.table中使用:=分配多列

在 R 中使用 data.table 取消嵌套多个列

在data.table中使用rep添加多列

在多列的data.table中使用t.test

如何在data.table的多个列中使用ifelse?

是否可以集成可点击的单元格来验证 v-data-table?

在data.table中使用“或”进行有条件的按行聚合