使用
从正态分布中绘制100乘50的数字平均值= 10,标准偏差= 20
对于任何平局,我都要计算他的标准差和算术平均值。
最后,我想创建一个长度为100的矢量,其中包含标准差和算术平均值之差的绝对值。 (即,我想创建一些向量x,其x [i] = | ab |,其中a是第i个平局中100个数字的标准偏差,b是第i个平局中100个数字的平均值。
根据上面的正态分布创建100个平局:
replicate(100,rnorm(50,10,20),simple = FALSE)
现在我有问题。我知道我可以使用函数“ mean”和“ sd”来计算算术平均值和标准差,但是我必须定义我作为矢量绘制的数字。我的意思是:
我在第一次抽奖中掷出的数字-向量1
我在第二次抽奖中掷出的数字-向量2
依此类推
然后,我可以计算它们的算术平均值和标准偏差。
那么我们可以算| a-b | (在上面定义)。最后,我将创建向量x [i] = | a-b |。
我有个主意,但我不知道怎么写。
答案 0 :(得分:2)
这是将replicate
的结果分配给变量(类别为"list"
,自simplify = FALSE
起的变量,然后将sapply
分配给mean
和sd
个功能。
set.seed(1234) # Make the results reproducible
repl <- replicate(100, rnorm(50, 10, 20), simplify = FALSE)
mu <- sapply(repl, mean)
s <- sapply(repl, sd)
D <- abs(s - mu)
head(D)
#[1] 16.761930 7.953432 6.833691 12.491605 5.490149 6.850794
单线可能是
D2 <- sapply(repl, function(x) abs(sd(x) - mean(x)))
identical(D, D2)
#[1] TRUE