# R/clusOpt2fixedPSU.R In PracTools: Tools for Designing and Weighting Survey Samples

#### Documented in clusOpt2fixedPSU

```clusOpt2fixedPSU <- function(C1, C2, m, delta, unit.rv, k=1, CV0=NULL, tot.cost=NULL, cal.sw){
delta.chk <- any(delta < 0 | delta > 1)
if (delta.chk) stop("delta must be in [0,1].\n")
if (!is.null(CV0) & !is.null(tot.cost))
stop("CV0 and tot.cost cannot both be non-null.\n")
if (is.null(CV0) & is.null(tot.cost))
stop("CV0 and tot.cost cannot both be null.\n")

if (sum(length(C1)>1, length(C2)>1, length(m)>1, length(delta)>1,
length(unit.rv)>1, length(CV0)>1, length(tot.cost)>1) > 1)
stop("Only one argument to function can be vector.\n")

if (cal.sw == 1){
n <- (tot.cost - C1*m)/C2/m
n.chk <- any(n < 0)
if (n.chk) stop(paste("n is negative. Check inputs. n=",n,"\n"))
CV <- sqrt(unit.rv*k/m/n*(1 + delta*(n-1)))
output <-
structure(list(C1 = C1,
C2 = C2,
m = m,
delta = delta,
"unit relvar" = unit.rv,
k = k,
cost = tot.cost,
n = round(n,1),
CV = round(CV,4)),
class = "power.htest")
}
if (cal.sw == 2) {
n <- (1 - delta) / (CV0^2*m/unit.rv/k - delta)
n.chk <- any(n < 0)
if (n.chk) stop(paste("n is negative. Check inputs. n=",n,"\n"))
cost <- C1*m + C2*m*n
output <-
structure(list(C1 = C1,
C2 = C2,
delta = delta,
m = m,
"unit relvar" = unit.rv,
k = k,
cost = cost,
n = round(n,1),
CV = CV0),
class = "power.htest")
}
output
}
```

## Try the PracTools package in your browser

Any scripts or data that you put into this service are public.

PracTools documentation built on Nov. 9, 2023, 9:06 a.m.