用函数输出R填充矩阵

用函数输出R填充矩阵,r,function,matrix,R,Function,Matrix,我试图在矩阵的每个实例中用函数的输出填充矩阵。我要么得到错误“替换的长度为零”,要么“要替换的项目数不是替换长度的倍数” 请帮忙 setPoint <- function(tarray, t){ var1 <- dim(tarray)[1] #get the length of longitudes, returns a number var2 <- dim(tarray)[2] #get the length of latitudes, returns a n

我试图在矩阵的每个实例中用函数的输出填充矩阵。我要么得到错误“替换的长度为零”,要么“要替换的项目数不是替换长度的倍数”

请帮忙

setPoint <- function(tarray, t){
    var1 <- dim(tarray)[1] #get the length of longitudes, returns a number
    var2 <- dim(tarray)[2] #get the length of latitudes, returns a number
    empty.matrix <- matrix(nrow=var1,ncol=var2)
    for (i in 1:var1) { #i is moving from 1 to 192 (longitude)
        for (j in 1:var2) { #j moves from 1 to 145 (latitude) 
            tmp.point <- tarray[i,j,]
            1my.vector <- c(1:var2)
            my.vector[j] <- thresholdYear(tmp.point, 38,t,0.8)
        }
        empty.matrix[i,] <- my.vector
    }

}

设定点首先,函数不返回任何内容
for
在R中循环返回
NULL
,这就是函数返回的结果。 其次,在内部循环中创建
my.vector
,并在下一条指令中重写其中一个值。在循环的第二次迭代中,您重新创建了它,因此破坏了前一次迭代的值,等等。在我看来,您需要做的是在内部循环之外创建它。类似下面的内容

setPoint <- function(tarray, t){
var1 <- dim(tarray)[1] #get the length of longitudes, returns a number
var2 <- dim(tarray)[2] #get the length of latitudes, returns a number
empty.matrix <- matrix(nrow=var1,ncol=var2)
for (i in 1:var1) { #i is moving from 1 to 192 (longitude)
      my.vector <- 1:var2
    for (j in 1:var2) { #j moves from 1 to 145 (latitude) 
        tmp.point <- tarray[i,j,]
        my.vector[j] <- thresholdYear(tmp.point, 38,t,0.8)
    }
    empty.matrix[i,] <- my.vector
}
empty.matrix

设定点首先,函数不返回任何内容
for
在R中循环返回
NULL
,这就是函数返回的结果。 其次,在内部循环中创建
my.vector
,并在下一条指令中重写其中一个值。在循环的第二次迭代中,您重新创建了它,因此破坏了前一次迭代的值,等等。在我看来,您需要做的是在内部循环之外创建它。类似下面的内容

setPoint <- function(tarray, t){
var1 <- dim(tarray)[1] #get the length of longitudes, returns a number
var2 <- dim(tarray)[2] #get the length of latitudes, returns a number
empty.matrix <- matrix(nrow=var1,ncol=var2)
for (i in 1:var1) { #i is moving from 1 to 192 (longitude)
      my.vector <- 1:var2
    for (j in 1:var2) { #j moves from 1 to 145 (latitude) 
        tmp.point <- tarray[i,j,]
        my.vector[j] <- thresholdYear(tmp.point, 38,t,0.8)
    }
    empty.matrix[i,] <- my.vector
}
empty.matrix

设定点什么是
行程
?您说它是一个矩阵,但您的代码在某个点上读取
trarray[i,j,]
。tarray是一个具有维度(192,145,475)的数组,我以经度,纬度,时间为单位输入函数。我想得到每个网格点通过时间(所以向量)作为输入。函数(thresholdYear)采用输出一年的向量。我想从一个包中生成该函数的年度输出矩阵是
thresholdYear
?请考虑给出什么是<代码> TrActudio>代码>?您说它是一个矩阵,但您的代码在某个点上读取
trarray[i,j,]
。tarray是一个具有维度(192,145,475)的数组,我以经度,纬度,时间为单位输入函数。我想得到每个网格点通过时间(所以向量)作为输入。函数(thresholdYear)采用输出一年的向量。我想从一个包中生成该函数的年度输出矩阵是
thresholdYear
?请考虑给予