0

我有一个数据框,它是通过对掷两枚硬币的模拟运行 1000 次来编译的。

即在每个测试中有两个硬币。测试重复 1000 次。

头为 1,尾为 2。

这是数据框的预览。

       X1   X2
1   X1  2   1
2   X2  1   1
3   X3  1   2
4   X4  1   1
5   X5  1   1
6   X6  1   2
7   X7  1   2
8   X8  1   2
9   X9  1   1
10  X10 2   1

它包含 2 个变量的 1000 个 obs。

我想计算以下条件的观察值:

  1. 两个硬币都是正面的机会

    sum(df.sim$X1 == 1 & df.sim$X2 == 1)/1000
    
  2. 两种硬币不同的可能性

    sum(df.sim$X1 == 2 & df.sim$X2 == 1)/1000
    
  3. 至少一枚硬币正面朝上的机会。

    没有把握...

我将如何计算条件号 3 的观察值,并且我是否正确计算了前两个条件的观察值。

我知道我应该得到的条件值如下

  1. 25%

  2. 50%

  3. 75%

4

2 回答 2

1

对于#2,您的方法不考虑第一枚硬币何时是正面和第二枚反面。但这种方法会奏效:

mean(df.sim$X1 != df.sim$X2)

对于#3,您可以执行与#1 相同的操作,但使用|(OR) 而不是&(AND)。

mean(df.sim$X1 == 1 | df.sim$X2 == 1)

请注意,使用mean而不是sum允许您跳过该/1000部分。

于 2015-09-09T17:35:01.120 回答
0

尝试这个

df <- df.sim[X1] + df.sim[X2]
length(df[df == 3])/1000
于 2015-09-09T17:33:58.037 回答