R中数据帧的仿真

R中数据帧的仿真,r,R,我有以下几个问题 > x Members Exp 1 A 2.575374 2 B 5.764491 3 C 7.576994 4 D 5.834233 5 E 3.977425 “Exp”是一个泊松分布变量。我现在想对整个表进行模拟,并查看“成员”在每个级别上的次数 预期结果如下: 排名A、B、C、D、E 1 10% 2 18% 3 42% 4 18% 5 12% 100% 非常感谢您的帮助:) 抱歉,但对R来说

我有以下几个问题

> x
  Members      Exp
1       A 2.575374
2       B 5.764491
3       C 7.576994
4       D 5.834233
5       E 3.977425
“Exp”是一个泊松分布变量。我现在想对整个表进行模拟,并查看“成员”在每个级别上的次数

预期结果如下:

排名A、B、C、D、E 1 10% 2 18% 3 42% 4 18% 5 12% 100%

非常感谢您的帮助:)

抱歉,但对R来说是个新手

    sim <- 100
    a <- matrix(nrow = sim, ncol = nrow(x))

    for (i in nrow(x)){
      a[,i] <<- rpois(sim, x[i,2])
      }

colnames(a) <- x[,1]
第1行是模拟1,第2行是模拟2,依此类推。。现在我想看看A的最大值是多少倍

我需要做的是创建一个大小相等的逻辑矩阵,在这里我对每行应用Max,然后计算每列的平均值。但是Max只返回每行的Max值,我想在每个单元格中返回0或1

试试这个:

...
sim <- 100
a <- matrix(nrow = sim, ncol = nrow(x))

for (i in nrow(x)){
  a[,i] <- rpois(sim, x[i,2])
}
。。。
sim试试这个:

...
sim <- 100
a <- matrix(nrow = sim, ncol = nrow(x))

for (i in nrow(x)){
  a[,i] <- rpois(sim, x[i,2])
}
。。。

sim这确实做到了,但希望不要用于循环:)

>x
成员经验
1 A 2.575374
2 B 5.764491
3 C 7.576994
4 D 5.834233
5 E 3.977425

sim这确实做到了,但希望不要用于循环:)

>x
成员经验
1 A 2.575374
2 B 5.764491
3 C 7.576994
4 D 5.834233
5 E 3.977425

sim您的预期输出不清楚,
对整个表进行模拟,并查看“成员”在每个列组上的次数。
没有意义。抱歉,不清楚。我想模拟“Exp”变量,然后看看完成1、2、3、4和5的次数。成员B、C、D和E也一样。请编辑您的问题以更好地解释它,而不是在评论部分进行修改。几点提示:看看
?复制
,它可能会帮助您进行模拟。另外,不要使用
泊松分布是离散的,因此第二列的值应该是整数…您的预期输出不清楚,
对整个表进行模拟,并查看“成员”在每个列上的次数。
没有意义。很抱歉,不清楚。我想模拟“Exp”变量,然后看看完成1、2、3、4和5的次数。成员B、C、D和E也一样。请编辑您的问题以更好地解释它,而不是在评论部分进行修改。几点提示:看看
?复制
,它可能会帮助您进行模拟。另外,不要使用泊松分布是离散的,所以第二列的值应该是整数。。。
> head(a)
     A  B  C D E
[1,] 0  9  8 3 4
[2,] 2 10  6 3 4
[3,] 3  6  7 9 1
[4,] 2  3  4 6 1
[5,] 3  4  6 7 3
[6,] 4  3 12 5 3
...
sim <- 100
a <- matrix(nrow = sim, ncol = nrow(x))

for (i in nrow(x)){
  a[,i] <- rpois(sim, x[i,2])
}
> x
  Members      Exp
1       A 2.575374
2       B 5.764491
3       C 7.576994
4       D 5.834233
5       E 3.977425

sim <- 100
a <- matrix(nrow = sim, ncol = nrow(x))
b <- matrix(nrow = sim, ncol = nrow(x))

for (i in 1:nrow(x)){
  a[,i] <- rpois(sim, x[i,2])
  }

colnames(a) <- x[,1]

for (j in 1:sim){
    for (k in 1:nrow(x)){
      b[j,k] <- as.numeric(a[j,k]) == max(a[j,])
    } 
}

head(b)

> head(b)
      [,1]  [,2]  [,3]  [,4]  [,5]
[1,] FALSE FALSE  TRUE FALSE FALSE
[2,] FALSE FALSE FALSE  TRUE FALSE
[3,] FALSE FALSE  TRUE FALSE FALSE
[4,] FALSE FALSE  TRUE FALSE FALSE
[5,] FALSE FALSE FALSE  TRUE FALSE
[6,] FALSE FALSE  TRUE FALSE FALSE