r - 如何获得充满随机数的矩阵以排除负数?
问题描述
这里只是一个简单的问题:我创建了一个充满随机数的矩阵,其中每行总和为 100。但是,它包括负数。我希望矩阵在每行中只包含 0 到 100 之间的正数。
我尝试了以下功能:
matrix <- t(replicate(30,{x <- runif(3, 0, 50); y <- c(x, 100 - sum(x)); sample(y/sum(y) * 100)}))
我尝试更改最小值,现在应该等于 0(最大值为 50),但这不起作用。我错过了什么?
先感谢您。
解决方案
那就先缩放吧sample
。
mat <- t(replicate(30, {
x <- runif(4, 0, 50)
sample(x/sum(x) * 100)
}))
any(mat < 0)
#[1] FALSE
all(rowSums(mat) == 100)
#[1] TRUE
我已将矩阵名称更改为mat
因为matrix
是基本 R 函数的名称。
推荐阅读
- c# - Azure WebJob BlobTrigger - 输出 Blob 使触发器不触发
- java - 左循环旋转一个 ArrayList 然后获取最大元素的索引
- flutter - Flutter VSCode 智能感知不适用于单文件包
- php - 如何在 PHP 中循环显示 WordPress 帖子的 while 语句?
- php - 有没有办法按照一定的标准将最多 3 个多维数组与 OOP PHP 对象组合成一个数组?
- curl - Linuxbrew curl证书问题
- r - R Highcharter - 共享工具提示(和各种工具提示参数)不起作用
- json - 使用正则表达式解析 Git Json
- javascript - 寻找合适的代码架构来嵌入音频,同时防止页面更新闪烁(HTML/javascript/Ajax)
- css - 网格列表向左浮动