在R中匹配sample()与rbinom()的输出?

在R中匹配sample()与rbinom()的输出?,r,random,sampling,resampling,R,Random,Sampling,Resampling,也许这个问题太简单了,但是a和B在我下面的R代码中不应该完全相等: set.seed(0) A <- sample(0:1, 50, prob = rep(.5, 2), replace = T) # 'A' is HERE plot(table(A)) set.seed(0) B <- rbinom(50, 1, .5) # 'B' is HERE plot(table(B)) set.seed(0) A如果我们取“B”的否定,它将是相同的,即如果我们看“B”的输出,它有0个

也许这个问题太简单了,但是
a
B
在我下面的
R
代码中不应该完全相等:

set.seed(0)
A <- sample(0:1, 50, prob = rep(.5, 2), replace = T) # 'A' is HERE
plot(table(A))

set.seed(0)
B <- rbinom(50, 1, .5)  # 'B' is HERE
plot(table(B))
set.seed(0)

A如果我们取“B”的否定,它将是相同的,即如果我们看“B”的输出,它有0个值,在A中取1,反之亦然

identical(A, +!B)
#[1] TRUE

或者,不做否定,而是通过做相反的操作,即1:0,来创建“A”

set.seed(0)
A <- sample(1:0, 50, prob = rep(.5, 2), replace = TRUE)
identical(A, B)
#[1] TRUE
set.seed(0)

A@rnorouzian通过检查输出,
rbinom
中的1s和0s分别反转position@rnorouzian
rbinom
是用C实现的,可能需要检查源代码。但是,我用字符尝试了
sample
,这几乎是相同的行为,即尝试
sample(c(“A”,“B”)
sample(c(“B”,“A”)
sample(c(“0”,“1”)
sample(c(“1”,“0”)
(如下所示)@rnorouzian这是一个有趣的问题,因为
sample
sample.int
并且它是用C实现的。因此,如果您使用
pryr::show_C_source(.Internal(sample(n,size,replace,prob))
它将指向random.C sourcecode@rnorouzian看起来答案是:=)阿克伦,谢谢。是的,答案是这是不可能的。