生成双变量数据,其中 x 变量在 0 和 1 之间均匀分布,Y 正态分布,均值为 1/x,带有一些噪声
Generating bivariate data where x variable is uniformly distributed between 0 and 1 and Y is normally distributed with mean 1/x with some noise
我使用 x <- c(runif(100, 0, 1)) 在 0 和 1 之间生成 100 个 x。
现在,对于每个 x,我试图生成 10 个 y,均值为 1/x,方差为 1。
最好存储在矩阵中,所以如果我要在 y 和 x 上绘制 1000 个点,它看起来像图 y = 1/x + 一些错误。
如有任何帮助,我们将不胜感激。
如果你想要矩阵中的数据,那么你可以这样做
x <- runif(100, 0, 1)
y <- sapply(x, function(m) rnorm(10, 1/m, 1))
这使用 sapply
为每个 x
值生成 10 个正常值。
如果你想要一列、两列、矩阵,那么也许
points <- do.call("rbind", lapply(x, function(m) cbind(x=m, y=rnorm(10, 1/m, 1))))
就是你想要的。你可以用
绘制它
plot(y~x, points)
我使用 x <- c(runif(100, 0, 1)) 在 0 和 1 之间生成 100 个 x。 现在,对于每个 x,我试图生成 10 个 y,均值为 1/x,方差为 1。 最好存储在矩阵中,所以如果我要在 y 和 x 上绘制 1000 个点,它看起来像图 y = 1/x + 一些错误。
如有任何帮助,我们将不胜感激。
如果你想要矩阵中的数据,那么你可以这样做
x <- runif(100, 0, 1)
y <- sapply(x, function(m) rnorm(10, 1/m, 1))
这使用 sapply
为每个 x
值生成 10 个正常值。
如果你想要一列、两列、矩阵,那么也许
points <- do.call("rbind", lapply(x, function(m) cbind(x=m, y=rnorm(10, 1/m, 1))))
就是你想要的。你可以用
绘制它plot(y~x, points)