R 在t+1的时间t快速引用一个元素

R 在t+1的时间t快速引用一个元素,r,R,t处[1,2]中的40应流入t+1处的[2,1]。 我用一个循环进行了尝试,见测试,作为元素 将不断变化 是否存在与速度相关的最佳解决方案? 最后,这个循环必须经过数千个i和j。 我的循环没有达到我的目标 有什么想法吗 下面是一个例子: #Example a <-c(10,40) a <- matrix(a, ncol=2, nrow =1) a <- rbind(a,c(0,0)) #Test for (i in 2:3) { for (j in 1:3){ a[

t处[1,2]中的40应流入t+1处的[2,1]。 我用一个循环进行了尝试,见测试,作为元素 将不断变化

是否存在与速度相关的最佳解决方案? 最后,这个循环必须经过数千个i和j。 我的循环没有达到我的目标

有什么想法吗

下面是一个例子:

#Example
a <-c(10,40)
a <- matrix(a, ncol=2, nrow =1)
a <- rbind(a,c(0,0))


#Test
for (i in 2:3) {
for (j in 1:3){
    a[i,1] <- a[j,2] 
  }
}
这里是我尝试创建的开始/结果:

START <- matrix(c(10,40, 0, 0), ncol=2, nrow =2, byrow = TRUE)
RESULT <- matrix(c(10,40, 40, 0), ncol=2, nrow =2)

在第一个示例中,您基本上希望将[1:2,2]移动到[2:3,1]中。实现这一目标的一般方法是:

from <- 2L
to <- 1L
len <- dim(a)[1L]
if(len > 1)
{
    a[-1L, to] <- a[1L:(len - 1L), from]
}

请提供输入和输出示例。很难从你的描述中看出你想要实现什么。最终结果应该是:第1行:10,第2行:40,第40行来自第一行,只是作为第一个元素转移到第二行。你的循环不会产生你想要的结果。嗨,Matthew,你是对的。我很不清楚。我重新措辞了问题。你好,佐塔,谢谢。这是我不想为一个有数千行的矩阵实现的。我将使用这个,并试图找出它是否足够快。再次非常感谢。