小编use*_*662的帖子

为什么data.table行索引的for循环比data.frame慢?

我肯定很困惑为什么按行索引访问data.table比data.frame慢.任何建议如何我可以在循环中顺序访问每一行data.table更快?

m = matrix(1L, nrow=100000, ncol=100)

DF = as.data.frame(m)
DT = as.data.table(m)

identical(DF[100, ], DT[100, ])
[1] FALSE

> all(DF[100, ], DT[100, ])
[1] TRUE

> system.time(for (i in 1:1000) DT[i,])
   user  system elapsed 
  5.440   0.000   5.451 

R> system.time(for (i in 1:1000) DF[i,])
   user  system elapsed 
  2.757   0.000   2.784 
Run Code Online (Sandbox Code Playgroud)

indexing r dataframe data.table

6
推荐指数
1
解决办法
1166
查看次数

如何有效地生成对称矩阵的下三角指数

我需要生成下三角矩阵索引(行和列对).当对称矩阵变大(超过50K行)时,当前实现是低效的(内存方式).有没有更好的办法?

rows <- 2e+01
id <- which(lower.tri(matrix(, rows, rows)) == TRUE, arr.ind=T)
head(id)

#      row col
# [1,]   2   1
# [2,]   3   1
# [3,]   4   1
# [4,]   5   1
# [5,]   6   1
# [6,]   7   1
Run Code Online (Sandbox Code Playgroud)

r matrix triangular indices

4
推荐指数
1
解决办法
1827
查看次数

标签 统计

r ×2

data.table ×1

dataframe ×1

indexing ×1

indices ×1

matrix ×1

triangular ×1