用函数输出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
?请考虑给予