File: UPmaxentropy.R

package info (click to toggle)
r-cran-sampling 2.10-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,336 kB
  • sloc: ansic: 21; makefile: 2
file content (28 lines) | stat: -rw-r--r-- 658 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"UPmaxentropy" <-function(pik) 
{ 
if(is.data.frame(pik)) 
    if(ncol(pik)>1) stop("pik is not a vector") else pik=unlist(pik)
else if(is.matrix(pik))
       if(ncol(pik)>1) stop("pik is not a vector") else pik=pik[,1]
else  if(is.list(pik))
   if(length(pik)>1) stop("pik is not a vector") else pik=unlist(pik)
n=sum(pik)
n=.as_int(n)
if(n>=2)
{
pik2=pik[pik!=1]
n=sum(pik2)
n=.as_int(n)
piktilde=UPMEpiktildefrompik(pik2) 
w=piktilde/(1-piktilde) 
q=UPMEqfromw(w,n)
s2=UPMEsfromq(q)
s=rep(0,times=length(pik))
s[pik==1]=1
s[pik!=1][s2==1]=1
}
if(n==0) s=rep(0,times=length(pik))
if(n==1) s=as.vector(rmultinom(1, 1,pik)) 
s
}