相关疑难解决方法(0)

一个^ k用于R中的矩阵乘法?

假设A是一些方阵.如何在R中轻松取幂这个矩阵?

我已经尝试了两种方法:试用1使用for-loop hack和试验2更优雅但它仍然与A k简单相去甚远.

试验1

set.seed(10)
t(matrix(rnorm(16),ncol=4,nrow=4)) -> a 
for(i in 1:2){a <- a %*% a}
Run Code Online (Sandbox Code Playgroud)

试用2

a <- t(matrix(c(0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0),nrow=4))
i <- diag(4) 
(function(n) {if (n<=1) a else (i+a) %*% Recall(n-1)})(10)
Run Code Online (Sandbox Code Playgroud)

r matrix

13
推荐指数
3
解决办法
1万
查看次数

data.table高效回收V2

这是这个问题的后续:data.table 高效回收

这里的区别在于,每条线的未来年份数不一定相同..

我经常在 data.table 中使用回收,例如当我需要预测未来几年时。我会重复未来每年的原始数据。

这可能会导致类似的情况:

library(data.table)
dt <- data.table(1:500000, 500000:1, rpois(500000, 240))
dt2 <- dt[, c(.SD, .(year = 1:V3)), by = 1:nrow(dt) ]
Run Code Online (Sandbox Code Playgroud)

但我经常需要处理数百万行,以及比这个玩具示例多得多的列。时间增加..试试这个:

library(data.table)
dt <- data.table(1:5000000, 5000000:1, rpois(5000000, 240))
dt2 <- dt[, c(.SD, .(year = 1:V3)), by = 1:nrow(dt) ]
Run Code Online (Sandbox Code Playgroud)

我的问题是:有没有更有效的方法来达到这个目的?

谢谢你的帮助 !

r recycle data.table

2
推荐指数
1
解决办法
424
查看次数

标签 统计

r ×2

data.table ×1

matrix ×1

recycle ×1