【问题标题】:Problem with creating a lot of new vector's创建大量新向量的问题
【发布时间】:2019-03-11 20:18:34
【问题描述】:

我想做一些事情:

  • 从正态分布中画出 100 次 50 个数

    平均值 = 10,标准差 = 20

  • 对于任何平局,我都想计算他的标准差和算术平均值。

  • 最后我想创建一个长度为 100 的向量,其中包含标准偏差和算术平均值之差的绝对值。 (即我想创建一些 x[i]=|a-b| 的向量 x,其中 a 是第 i 次抽奖中 100 个数字的标准差,b 是第 i 次抽奖中 100 个数字的平均值。

我做了什么:

从上面的正态分布中创建 100 个平局:

复制(100, rnorm(50, 10, 20), 简化 = FALSE)

现在我有一个问题。我知道我可以使用函数“mean”和“sd”来计算算术平均值和标准差,但我必须定义我绘制为向量的数字。我的意思是:

我在第一次抽奖中滚动的数字 - 向量 1

我在第二次抽奖中滚动的数字 - 矢量 2

等等

然后我可以计算它们的算术平均值和标准差。

那么我们可以数|a-b| (定义如上)。最后,我将创建 x[i]=|a-b| 的向量。

我有一个想法,但我不知道怎么写。

【问题讨论】:

    标签: r


    【解决方案1】:

    这是将replicate 的结果分配给一个变量(属于"list" 类,因为simplify = FALSE),然后将sapply 分配给meansd 函数。

    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
    

    【讨论】:

      猜你喜欢
      • 2018-12-13
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多