[英]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)
将值转换为矩阵的另一种方法如下。 这可能是在这种情况下更容易,因为你知道你想要每个向量的是一列,这样就不必担心设置nrow
或ncol
正确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.