2016-10-26 3 views
0

데이터 수가 많고 관련 확률이 각각 0 또는 1입니다.이 확률에서 추출한 0과 1의 벡터를 만드는 방법이 있습니까 ? 다음 코드는 내가 원하는 것을 수행하는 방법을 보여 주지만 루프에있다. 어떻게 이것에 대해 ... 나는 문자 혼란을 얻을 때문에, 내가 제대로 이해하고 있는지 확실하지 않습니다R : 확률 기반 참/거짓 문

 x p     result 
[1,] "a" "0.0407166101504117" "0" 
[2,] "b" "0.632280522491783" "1" 
[3,] "c" "0.754841333255172" "0" 
[4,] "d" "0.0509465073700994" "0" 
[5,] "e" "0.629663853673264" "0" 
[6,] "f" "0.357108945958316" "0" 
[7,] "g" "0.808141406625509" "1" 
[8,] "h" "0.671664241468534" "1" 
[9,] "i" "0.0218871515244246" "1" 
[10,] "j" "0.689538966864347" "1" 

답변

3

:

n <- 10 
x <- letters[1:n] # my data 
p <- runif(n) # my probabilities of the result being 1 
result <- numeric() 
for(ii in 1:n){ 
    result[ii] <- sample(x = c(0,1), 1, prob = c(1-p[ii], p[ii])) 
} 
print(cbind(x, p, result)) 

결과는 뭔가처럼?

set.seed(1) # reproducibility 
n <- 10 
p <- runif(n) # probabilities 
result <- rbinom(n,1,p) 

cbind(p,result) 
       p result 
[1,] 0.26550866  0 
[2,] 0.37212390  0 
[3,] 0.57285336  0 
[4,] 0.90820779  1 
[5,] 0.20168193  0 
[6,] 0.89838968  1 
[7,] 0.94467527  1 
[8,] 0.66079779  0 
[9,] 0.62911404  1 
[10,] 0.06178627  0 
+0

완벽하게, 이것은 내가 바라는대로 정확하게 작동합니다. 그 편지는 단지 데이터 ID 였고 아무 것도 중요하지 않았습니다. 감사. – Mark

관련 문제