R中rep()的意外行为

R中rep()的意外行为,r,R,我试图使用rep()函数在R中创建一个向量 p <- .9 n <- 100 rep(8,n*(1-p)^2) # expect 8 p原因在于对问题的评论。解决方法是使用: rep(8, round(n*(1-p)^2)) 浓缩评论。rep的第二个参数应该是整数。从帮助页面:?as.integer,我们知道实数被截断为零。所以 n*(1-p)^2 传给 as.integer(n*(1-p)^2) 它等于0@Frank-yep,as.integer(n*(1-p)^2)返回0

我试图使用
rep()
函数在R中创建一个向量

p <- .9
n <- 100
rep(8,n*(1-p)^2) # expect 8

p原因在于对问题的评论。解决方法是使用:

rep(8, round(n*(1-p)^2))

浓缩评论。
rep
的第二个参数应该是整数。从帮助页面:
?as.integer
,我们知道实数被截断为零。所以

n*(1-p)^2
传给

as.integer(n*(1-p)^2)

它等于
0

@Frank-yep,
as.integer(n*(1-p)^2)
返回
0
-as.integer(0.99999)
这基本上是常见问题7.31,例如@Dave
等同(n*(1-p)^2,1)
是假的,正如
n*(1-p)^2==1
一样。R不能精确地存储这些数字。