作者jas9441314 (jet B)
看板R_Language
标题[问题] sample中一个每个都抽到
时间Fri Jun 23 00:48:28 2017
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
请把以下不需要的部份删除
入门(写过其他程式,只是对语法不熟悉)
*[m
[问题叙述]:
我想要从1:368个数字当中 根据每个数字出现的机率p=c(p1,p2,...,p368)抽取1次放回
希望1:368每个数字都能被抽中
然後重复抽10次这样的动作
但是目前抽出来有些情况只会抽出367个数字而非368个
想请问各位大大如何解决 感谢
[程式范例]:
replicate(10,saple(1:368,nrow(data),replace=TRUE,prob=p))
[环境叙述]:
请提供 sessionInfo() 的输出结果,
里面含有所有你使用的作业系统、R 的版本和套件版本资讯,
让版友更容易找出错误
[关键字]:
选择性,也许未来有用
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 119.14.49.108
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1498150111.A.1FD.html
1F:→ andrew43: 不懂「希望1:368每个数字都能被抽中」是怎麽回事? 06/23 01:20
2F:→ andrew43: 不是已经给定机率抽出放回,又怎麽保证都能被抽中? 06/23 01:21
3F:推 inin007: 这问题叙述,中文能力要加油 06/23 01:58
4F:→ jas9441314: 就是给定抽後放回 但想每个都抽到 06/23 09:16
5F:推 f496328mm: 你要放回,又要全部都抽到,不可能,你不要放回才能全 06/23 10:49
6F:→ f496328mm: 部抽到 06/23 10:49
7F:→ cywhale: 是说每次抽个1000数字(比如)里面包含1-368,重复10次?? 06/23 10:50
8F:推 f496328mm: 例如1:2你抽两次,抽後放回,那有可能出现两次都抽到 1 06/23 10:52
9F:→ f496328mm: or 2,数字多那就更容易重复抽到相同的 06/23 10:52
10F:推 f496328mm: 如果你其中一个机率p,小於nrow(data),那抽不到是正常 06/23 10:58
11F:→ f496328mm: 的 06/23 10:58
12F:→ f496328mm: 调整seed有可能全部都抽到,不过这样不太好就是了 06/23 10:59
13F:→ a78998042a: sample.base.v = 1:368 06/23 11:44
14F:→ a78998042a: s_len.v = length(sample.base.v) 06/23 11:44
15F:→ a78998042a: sample.f = function() 06/23 11:44
16F:→ a78998042a: sample( 06/23 11:44
17F:→ a78998042a: c( 06/23 11:44
18F:→ a78998042a: sample(sample.base.v), 06/23 11:44
19F:→ a78998042a: sample(sample.base.v, 06/23 11:45
20F:→ a78998042a: (nrow(data) - s_len.v), 06/23 11:45
21F:→ a78998042a: replace=TRUE, 06/23 11:45
22F:→ a78998042a: prob=rep(1/s_len.v, s_len.v)) 06/23 11:45
23F:→ a78998042a: ) 06/23 11:46
24F:→ a78998042a: ) 06/23 11:46
25F:→ a78998042a: sample.result.m = replicate(10, sample.f()) 06/23 11:46
26F:→ a78998042a: 既然一定要抽到,就不是纯随机的问题,那就先放一个 06/23 11:48
27F:→ a78998042a: 1:368的base,接着再随机抽凑满nrow(data)个数,最後 06/23 11:48
28F:→ a78998042a: 再打乱顺序。 06/23 11:49
29F:推 f496328mm: 楼上这样的base,可是他有机率问题耶,他是有给定机率 06/23 13:09
30F:→ f496328mm: 的 06/23 13:09
31F:→ a78998042a: 发文者说明,抽样条件为 抽出每组样本 内 base中所有 06/23 15:01
32F:→ a78998042a: 元素 均 至少大於1个。 06/23 15:01
33F:→ a78998042a: 所以当设定base中任意元素之出现机率<1时,抽样条件就 06/23 15:01
34F:→ a78998042a: 不可能满足。 06/23 15:01
35F:→ jas9441314: 好的 感谢各位大大 我用其他方式绕过去处理看看 06/23 15:39
36F:推 lin15: 原po国文要加强... 06/23 22:49