2011-02-02 4 views
1

내가 제공 한 확률에 따라 클래스에 과목을 할당하고 싶습니다. 나는 다양한 가치와 함께 다양한 경우에 이것을 할 것입니다. 때때로, 나는이컷() 문제 R

을 사용하고 특정 클래스의 확률은 0이되고 싶어하지만 P 변수의 두 가지가 같은 경우이 오류가 발생합니다. 나는 그것들을 최소량만큼 다른 것으로 만들 수있다. pdrop = .2 ptitrate = .200001. 그러나 더 좋은 방법이 있습니까?

감사

피터

+2

케어는 완전한 기능을 더미 예를 제공하기 위해? –

+0

이렇게하려면 p 값이 누적 확률 척도의 나누기를 나타내야하므로 클래스에 대해 확률이 0이 아닌 한 동일한 값을 가져서는 안됩니다.이 경우 클래스가 포함되지 않습니다. 그러나 스칼라의 견본 제안은 더 나은 방법입니다. – James

답변

6
내가 sample() 제안

:

> p   <- 100 
> groups <- c("D", "T", "C", "N", "O") 
> probVec <- c(0.2, 0.2, 0.3, 0.25, 0.05) 
> classlist <- factor(sample(groups, size=p, replace=TRUE, prob=probVec)) 
> table(classlist) 
classlist 
C D N O T 
26 16 28 5 25 
+0

이렇게하면 긍정적 인 확률이 없다는 오류 메시지가 나타납니다. 나는 달렸다 pdrop = .1; ptitrate = .5; pcomplete = 0; pnoise = .2; pother = 1 - (pdrop + pcomplete + pnoise + pother); #PROBS OF DIFFERER CLASSES p <- 100 그룹 <- c ("D", "T", "C", "N", "O") probVec <- c (pdrop, ptitrate, pcomplete, pnoise,classlist <- factor (샘플 (그룹, 크기 = p, 바꾸기 = TRUE, prob = probVec)) 테이블 (클래스 목록) 및 오류가 발생했습니다. 샘플에 오류가 있습니다 (그룹, 크기 = p, 바꾸기 = TRUE, prob = probVec) : 양의 확률이 없습니다 –

+0

@Peter :'pother'를 자체의 함수로 작성했습니다. 나는 당신이'pother = 1- (pdrop + ptitrate + pcomplete + pnoise)'를 의미했다고 의심합니다. 그것이 당신의 실수의 근원입니까? –

+0

해당 주석의 형식을 죄송합니다. 주석 형식을 지정하는 방법이 있습니까? –