繁体   English   中英

如何限制R中的runif中的浮点数?

[英]How to limit floating numbers in runif in R?

我有几个问题。

1-如何限制R中的runif函数中的浮点数? 例如,我使用下面的代码生成矩阵。

n1 = runif(10,1,5)
n2 = runif(10,1,6)
n3 = runif(10,1,7)
n4 = runif(10,1,8)
numvect=list(transpose(n1),transpose(n2),transpose(n3),transpose(n4))
#put the number vectors into a matrix
# construct a matrix with 10 rows and 4 columns

matrixnum = matrix(,nrow=10,ncol=4)
for(i in 1:8){
  matrixnum[,i] <- numvect[[i]]
}
write.table(matrixnum,'num4.txt',sep = "\t",row.names=F,col.names=F,options(digits=4)) # write the matrix

但是在结果中,它仍然具有14或15个浮点数。 我认为options(digits=4)参数在这里不起作用。

2-将矩阵写入.txt输出时,如何控制文件中的数字不具有科学计数法?

如果您尝试将四个随机数向量转换为四舍五入到小数点后四位的10x4矩阵,我想您可以这样做:

n1 = runif(10,1,5)
n2 = runif(10,1,6)
n3 = runif(10,1,7)
n4 = runif(10,1,8)

matrixnum = matrix(round(c(n1,n2,n3,n4), 4), nrow=10)

将值转换为矩阵的另一种方法如下。 这可能是在这种情况下更容易,因为你知道你想要每个向量的是一列,这样就不必担心设置nrowncol正确matrix()

round(as.matrix(cbind(n1,n2,n3,n4)), 4)

然后,将矩阵写入文件:

write.table(matrixnum, 'num4.txt', sep = "\t", row.names=F, col.names=F)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM