[問題] 關於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