gpt4 book ai didi

r - 生成具有三列且每行具有恒定总和的数据框

转载 作者:行者123 更新时间:2023-12-01 04:44:42 28 4
gpt4 key购买 nike

我想生成一个包含三列(A、B 和 C)的大型数据框(100000 行和 3 列)。

这个数据框满足两个条件:

  • 在每一行中,A+B+C=1 ;
  • 所有 A 都具有三角形分布(min=0.2,mod=0.3,max=0.4),所有 B 都具有三角形分布(min=0.3,mod=0.4,max=0.5)并且所有 C 都具有三角形分布(最小值=0.1,模数=0.3,最大值=0.5)。

  • 我无法弄清楚如何生成这种数据集。

    非常感谢您提前提出建议。

    松超

    最佳答案

    N <- 100000

    library(triangle)

    A <- rtriangle(N, 0.2, 0.4, 0.3)
    B <- rtriangle(N, 0.3, 0.5, 0.4)
    C <- 1 - A - B

    d = data.frame(A, B, C)
    summary(d)

    稍后修改
    nr <- 100000

    u1 <- runif(nr)
    u2 <- runif(nr)
    u3 <- (2 - u1 - u2) / 2

    U <- cbind(u1, u2, u3)

    # shuffle, because I am not sure about the tails of u3
    for (i in (1:nrow(U))) {
    U[i, ] <- U[i, sample(1:3)]
    }

    t1 <- qtriangle(U[, 1], 0.2, 0.4, 0.3)
    t2 <- qtriangle(U[, 2], 0.3, 0.5, 0.4)
    t3 <- qtriangle(U[, 3], 0.1, 0.5, 0.3)

    d <- cbind(t1, t2, t3)
    summary(d)
    cor(d)

    关于r - 生成具有三列且每行具有恒定总和的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47748746/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com