我试图复制下面的情节。该图由 8 rnorm()
组成,每个都定义为rnorm(n = 100, mean = varying, sd = 1)
,8个中的每一个都堆叠在x轴特定值的顶部。例如,在 x轴值1 的顶部,有以下rnorm
:
rnorm(n = 100, mean = 11, sd = 1)
或
在 x轴值2 的顶部,有以下rnorm
:
rnorm(n = 100, mean = 12, sd = 1)
(因此,只有mean
变化一个值[即,此处从11到12]。)
我已尝试以下R代码复制我在下面显示的情节 :
(我想知道如何修复我的R代码以重现下面的情节?)
注意:我需要绘制以下面显示的方式获得的x和y的实际值,以便我可以通过绘制的数据传递lm
,如下图所示
mean = 11:18
x = rep( 1:8, 1e2 )
y = rnorm(1e2, mean, 1)
plot(x, y)
答案 0 :(得分:1)
可能是根据rnorm()
参数轻松创建mean
的矢量化版本:
Vec_rnorm <- Vectorize(function(n, mean, sd) rnorm(n, mean, sd), 'mean')
y <- Vec_rnorm(1e2, 11:18, 1)
您将得到一个包含100行和8列的矩阵,其中每列与正常r.v的特定均值相关。
如果您想将所有内容都作为向量使用,请使用c()
:
y <- c(Vec_rnorm(1e2, 11:18, 1))
x <- rep(1:8, each = 1e2)
plot(x, y)
abline(lm(y~x))