[问题] 关于sample指令

楼主: Rose9305 (台产零零柒)   2015-12-16 19:37:21
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
新手(没写过程式,R 是我的第一次)
[问题叙述]:
我有组数字资料,想把它当成机率,
运用sample指令来抽样判别各个数值所当的机率时,会抽出(判别)出什么。
[程式范例]:
像正常,若只有单笔资料假设数值0.7
sample(c("不好","好"),1,c(1-0.7,0.7),replace=F)
跑R后,就我了解这指令的意思应该是:
出来结果会有0.7机率跑出"好",0.3机率跑出"不好"
这都可以正常跑出。
但是我想跑一组数值当机率,分别判断,却跑不出来。
a<-c(0.01,0.05,0.7,0.3,0.22)
sample(c("不好","好"),1,c(1-a,a),replace=F)
结果显示:
Error in sample.int(length(x), size, replace, prob) :
incorrect number of probabilities
(看他红字好像是说机率数值不正确?)
(我一个一个代数值是可以正常跑出,只是我有很长一组数字阿!!!)
我想做出类似于这样,第一个用0.01代入a内,判断(抽出)好还是不好,
下一笔用0.05代入a一样看抽出(判断).......下去。
最后应该大概要显示(以上例):不好,不好,好,不好,不好 这样的结果。
请问要如何做呢?哪边有问题?
作者: celestialgod (天)   2015-12-16 19:49:00
sapply(a,function(x) sample(c("不好","好"),1,,c(1-x,x))少一个)最后面再补一个)就好了
楼主: Rose9305 (台产零零柒)   2015-12-16 21:08:00
OK了,THX
作者: psinqoo (零度空間)   2015-12-18 13:16:00

Links booklink

Contact Us: admin [ a t ] ucptt.com