Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
填充矩阵时,如何修正R中的舍入误差?_R - Fatal编程技术网

填充矩阵时,如何修正R中的舍入误差?

填充矩阵时,如何修正R中的舍入误差?,r,R,我有以下矩阵: mat <- matrix(rnorm(10801),1,length(seq(0,30,(1/360)))) colnames(mat) <- seq(0,30, by = 1/360) mat2 <- matrix(0L,1,100) for(j in 1 : 100 ){ mat2[,j] <- round(runif(1,0,10800),0)/360 } mat在截断数字时,必须确保数字正确舍入。最安全的方法可能是将结果乘以10^5,然后取

我有以下矩阵:

mat <- matrix(rnorm(10801),1,length(seq(0,30,(1/360))))

colnames(mat) <- seq(0,30, by = 1/360)

mat2 <- matrix(0L,1,100)
for(j in 1 : 100 ){
mat2[,j] <- round(runif(1,0,10800),0)/360
}

mat在截断数字时,必须确保数字正确舍入。最安全的方法可能是将结果乘以10^5,然后取
下限
,转换为整数。这将确保小数点后第四位的数字相等


matnames它似乎在大多数情况下都有效。您可以尝试的唯一方法是将
colnames(mat)
的数字和
mat2
的值四舍五入为2位小数,并将其转换为字符。然后可以确保mat2中的每个值都有一个对应的值。
mat3 <- matrix(0L,1,100)

for(i in 1:100){
  mat3[1,i] <- mat[1,colnames(mat) == mat2[1,i]]
}