全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1517 3
2016-05-26
想请教,当查看sample函数的例子时,发现有一个bug,即生成的一个长度为10的样本,这是为什么呀?谢谢~

# sample()'s surprise:

x <- 1:10   
sample(x[x >  8]) # length 2   
sample(x[x >  9]) # oops -- length 10!   
sample(x[x > 10]) # length 0


## safer version:
resample <- function(x, ...) x[sample.int(length(x), ...)]
resample(x[x >  8]) # length 2
resample(x[x >  9]) # length 1
resample(x[x > 10]) # length 0





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-5-26 17:14:03
实际生成sample时是下面这样的

> x <- 1:10   
> sample(x[x >  8])
[1] 10  9
> sample(x[x >  9])
[1]  6  5  4  2  1  3  9  8 10  7
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-26 17:45:32
复制代码

实际上就是:
复制代码

生成10个随机数,没有问题的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-26 18:06:24
jiangbeilu 发表于 2016-5-26 17:45
实际上就是:

生成10个随机数,没有问题的
谢谢!刚刚试了一下,确实。sample(c(10))是生成10个随机数,这种只有一个元素的情况应该就变成是sample(10)了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群