expand.grid(i=rexp(5,rate=0.1))
它只创建一个col但是有一些方法可以轻松地将其乘以5个col?我的意思是matlab这样的事情,比如rand('exp', 0.1, 10,20)
(创建一个矩阵,指数分布随机数,平均值为0.1×10x20),怎么样?
答案 0 :(得分:32)
使用matrix功能:
matrix(rexp(200, rate=.1), ncol=20)
ETA:如果你想这样做而不重复200,你可以定义一个函数:
fill.matrix = function(expr, nrow=1, ncol=1) {
matrix(eval(expr, envir=list(x=nrow*ncol)), nrow=nrow, ncol=ncol)
}
fill.matrix(rexp(x, rate=.1), nrow=10, ncol=20)
x
因此成为您正在谈论的虚拟变量。这就是你要找的东西吗?
答案 1 :(得分:12)
你可以这样做:
matrix(rexp(200), 10)
当然使用你想要的任何发行版。
答案 2 :(得分:9)
?matrix
会告诉你很多! rexp
是生成随机指数分布的函数。
mat <- matrix(data = rexp(200, rate = 10), nrow = 10, ncol = 20)
答案 3 :(得分:0)
这是一个简单的解决方案:
replicate(rexp(10),20)
答案 4 :(得分:0)
使用此:
matris=matrix(rnorm(10),5,20)
答案 5 :(得分:0)
您可以在以下代码行中生成均匀分布的10 x 15随机矩阵:
matrix(runif(10*15), nrow = 10, ncol = 15)