我被一个简单的循环卡住了,这个循环需要一个多小时才能运行,需要帮助来加速它。
基本上,我有一个有31列和40万行的矩阵。前30列有值,第31列有一个column-number。我需要每行检索由第31列指示的列中的值。
示例行:
太慢的循环看起来像这样:
a <- rep(0,nrow(data)) #To pre-allocate memory
for (i in 1:nrow(data)) {
a[i] <- data[i,data[i,31]]
}
我认为这是可行的:
a <- data[,data[,31]]
..。但它会导致“错误:无法分配大小为2.8Mb的向量
# Function to apply a rigid transformation matrix to a pair of coordinates
transformation <- function(r1, r2, r3, r4, x, y, z = 0, t = 1)
{
transformation_matrix <- matrix(c(r1, r2, r3, r4), nrow=1, ncol=4)
coordinate_matrix <- matrix(c(x, y, z, t), nrow=4, ncol=1)
transformed_coordi