| Title: | Dynamic Survey Sampling Solutions | 
| Version: | 1.1.1 | 
| Description: | A robust solution employing the SRS (Simple Random Sampling), systematic and PPS (Probability Proportional to Size) sampling methods, ensuring a methodical and representative selection of data. Seamlessly allocate predetermined allocations to smaller levels. | 
| License: | MIT + file LICENSE | 
| Depends: | R (≥ 2.10) | 
| Imports: | base, data.table, dplyr, magrittr, rlang, sampling, stats, utils | 
| Suggests: | knitr, rmarkdown | 
| VignetteBuilder: | knitr | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| RoxygenNote: | 7.2.1 | 
| NeedsCompilation: | no | 
| Packaged: | 2024-09-27 23:51:47 UTC; User | 
| Author: | Choerul Afifanto [aut, cre, cph] | 
| Maintainer: | Choerul Afifanto <choerulafifanto@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2024-09-28 00:20:02 UTC | 
Example of Allocation Data
Description
Example of Allocation Data for Sampling Purposes
Usage
alokasi_dt
Format
alokasi_dt
A data frame with 34 rows and 3 columns:
- kdprov
- province code 
- jml_kabkota
- Population or number of regencies/cities 
- n_primary
- Sample Allocation 
...
Select Samples Given its Parameters
Description
Samples selection using systematic or PPS (Probability Proportional to Size) sampling method.
Usage
doSampling(
  pop,
  alloc,
  nsample,
  type,
  strata = NULL,
  ident = c("kdprov", "kdkab"),
  implicitby = NULL,
  method = "systematic",
  auxVar = NA,
  seed = 1,
  predetermined_rn = NULL,
  is_secondary = FALSE,
  verbose = TRUE
)
Arguments
| pop | pop dataframe | 
| alloc | allocation dataframe | 
| nsample | variable on alloc df as allocation sample | 
| type | type value for sample classification ('U' = Primary Samples, 'P' = Secondary Samples) | 
| strata | strata variable, must available on both pop and alloc dataframe | 
| ident | group by on allocation dataframe | 
| implicitby | variable used as implicit stratification | 
| method | method of sampling :  | 
| auxVar | auxiliary variable for pps sampling ( | 
| seed | seed | 
| predetermined_rn | predetermined random number variable on allocation dataframe, the default value is NULL, random number will be generated randomly | 
| is_secondary | if the value is  | 
| verbose | verbose ( | 
Value
list of population data ("pop"), selected samples ("sampledf"), and details of sampling process ("details")
Examples
library(samplingin)
library(magrittr)
library(dplyr)
# Simple Random Sampling (SRS)
dtSampling_srs = doSampling(
   pop         = pop_dt
   , alloc     = alokasi_dt
   , nsample   = "n_primary"
   , type      = "U"
   , ident     = c("kdprov")
   , method    = "srs"
   , auxVar    = "Total"
   , seed      = 7892
)
# Population data with flag sample
pop_dt = dtSampling_srs$pop
# Selected Samples
dsampel = dtSampling_srs$sampledf
# Details of sampling process
rincian = dtSampling_srs$details
# PPS Sampling
dtSampling_pps = doSampling(
   pop         = pop_dt
   , alloc     = alokasi_dt
   , nsample   = "n_primary"
   , type      = "U"
   , ident     = c("kdprov")
   , method    = "pps"
   , auxVar    = "Total"
   , seed      = 1234
)
# Population data with flag sample
pop_dt = dtSampling_pps$pop
# Selected Samples
dsampel = dtSampling_pps$sampledf
# Details of sampling process
rincian = dtSampling_pps$details
# Systematic Sampling
dtSampling_sys = doSampling(
   pop         = pop_dt
   , alloc     = alokasi_dt
   , nsample   = "n_primary"
   , type      = "U"
   , ident     = c("kdprov")
   , method    = "systematic"
   , seed      = 4321
)
# Population data with flag sample
pop_dt = dtSampling_sys$pop
# Selected Samples
dsampel = dtSampling_sys$sampledf
# Details of sampling process
rincian = dtSampling_sys$details
# Systematic Sampling (Secondary Samples)
alokasi_dt_p = alokasi_dt %>%
   mutate(n_secondary = 2 * n_primary)
dtSampling_sys_p = doSampling(
   pop           = dtSampling_sys$pop
   , alloc       = alokasi_dt_p
   , nsample     = "n_secondary"
   , type        = "P"
   , ident       = c("kdprov")
   , method      = "systematic"
   , seed        = 6789
   , is_secondary = TRUE
)
# Population data with flag sample
pop_dt = dtSampling_sys_p$pop
# Selected Samples
dsampel = dtSampling_sys_p$sampledf
# Details of sampling process
rincian = dtSampling_sys_p$details
# Systematic Sampling with predetermined random number (predetermined_rn parameter)
alokasi_dt_rn = alokasi_dt %>% rowwise() %>% mutate(ar = runif(n(),0,1)) %>% ungroup
dtSampling_sys = doSampling(
   pop         = pop_dt
   , alloc     = alokasi_dt_rn
   , nsample   = "n_primary"
   , type      = "U"
   , ident     = c("kdprov")
   , method    = "systematic"
   , predetermined_rn = "ar"
   , seed      = 4321
)
# Population data with flag sample
pop_dt = dtSampling_sys$pop
# Selected Samples
dsampel = dtSampling_sys$sampledf
# Details of sampling process
rincian = dtSampling_sys$details
Allocate Predetermined Allocations to Smaller Levels
Description
Allocate predetermined allocations to smaller levels using proportional allocation method
Usage
get_allocation(data, n_alloc, group, pop_var = "jml", secondary = 0)
Arguments
| data | population tabulation dataframe | 
| n_alloc | total allocation dataframe | 
| group | group of allocation level to be obtained | 
| pop_var | population variable in data | 
| secondary | how many times the secondary sample compares to primary sample | 
Value
allocation at more detailed level
Examples
library(samplingin)
library(magrittr)
contoh_alokasi = alokasi_dt %>%
   dplyr::select(-n_primary) %>%
   dplyr::mutate(nasional = 1)
alokasi_dt = get_allocation(
   data = contoh_alokasi
   , n_alloc = 100
   , group = c("nasional")
   , pop_var = "jml_kabkota"
)
Indonesian Population (SP2020)
Description
Tabulation of Indonesia's population based on the results of the 2020 population census by regency/city and gender
Usage
pop_dt
Format
pop_dt
A data frame with 514 rows and 8 columns:
- idkab
- region id 
- kdprov
- province code 
- kdkab
- regency/city code 
- nmprov
- province name 
- nmkab
- regency/city name 
- Laki-laki
- Male Population 
- Perempuan
- Female Population 
- Total
- Total Population 
...
Source
https://sensus.bps.go.id/main/index/sp2020
round_preserve_sum
Description
round_preserve_sum
Usage
round_preserve_sum(x, digits = 0)
Arguments
| x | a number | 
| digits | 0 (default) |