# NRMSampling 0.2.1

## Bug fix

* **NAMESPACE**: Removed `sample`, `runif`, and `setNames` from
  `importFrom(stats, ...)`. These are `base::` functions and are always
  available without import. Listing them under `stats::` caused the warning:
  `object 'sample' is not exported by 'namespace:stats'`
  on `devtools::load_all()` and `R CMD CHECK`.

* Added correct `@importFrom stats coef lm qt sd var` and
  `@importFrom utils head read.csv` roxygen2 tags to `R/zzz.R` so that
  `devtools::document()` regenerates the NAMESPACE without the
  `base::` / `stats::` confusion.

---

# NRMSampling 0.2.0

## New features

* Added `NRMSampling.Rproj` RStudio project file for streamlined development
  with `devtools`, `roxygen2`, and `testthat` integration.
* `stratified_sample()` now accepts a named integer vector for `n_per_stratum`,
  enabling Neyman (optimal) or any user-defined allocation.
* `pps_sample()` now attaches `.inclusion_prob` (n * p_i) to output, ready for
  direct use with `ht_estimator()`.
* `plot_summary()` now handles all-numeric data frames when `vars = NULL`
  without requiring explicit column names.
* `carbon_stock_estimate()` now validates `carbon_fraction` range and documents
  the IPCC (2006) default of 0.47.
* Added `sampling_efficiency()` for quantitative comparison of two sampling
  designs via relative efficiency (RE = Var1 / Var2).
* All spatial functions now provide informative installation messages if `sf`
  or `terra` are not available, rather than an opaque error.

## Bug fixes

* `purposive_sample()`: condition evaluation now uses `with()` instead of
  `eval(parse(...))` on the global environment, preventing accidental access
  to objects outside the data frame.
* `systematic_sample()`: fixed an edge case where `k = nrow(data)` would
  select only one unit rather than erroring.
* `quota_sample()`: now silently caps quota to stratum size instead of
  erroring when quota exceeds available units.
* `regression_estimator()`: now requires at least 3 complete observations
  before fitting and raises an informative error.

## Documentation

* `.Rbuildignore` updated to exclude `NRMSampling.Rproj` and `.Rproj.user/`
  from the CRAN source bundle.
* `.gitignore` expanded with comprehensive R, RStudio, and OS entries.
* All roxygen2 `@examples` verified to run in under 5 seconds.
* `cran-comments.md` updated to reflect v0.2.0 test environments.

---

# NRMSampling 0.1.0

## Initial CRAN release

### Probability Sampling
* `srs_sample()` -- Simple random sampling with/without replacement.
* `stratified_sample()` -- Equal, proportional, or Neyman allocation.
* `systematic_sample()` -- Fixed-interval systematic sampling.
* `cluster_sample()` -- Single-stage cluster sampling.
* `pps_sample()` -- Probability-proportional-to-size sampling.

### Non-Probability Sampling
* `convenience_sample()` -- First-n convenience sample.
* `purposive_sample()` -- Condition-based purposive sampling.
* `quota_sample()` -- Fixed-quota non-random selection.

### Estimation
* `estimate_mean()`, `estimate_total()` -- Mean and total estimators.
* `estimate_variance()`, `estimate_se()` -- Variance and SE with fpc.
* `estimate_ci()` -- t-based confidence intervals.
* `ratio_estimator()` -- Ratio estimate of population total.
* `regression_estimator()` -- Regression-adjusted mean estimate.
* `ht_estimator()`, `ht_variance()` -- Horvitz-Thompson estimator and variance.
* `stratified_estimator()` -- Weighted stratified mean estimator.

### NRM Utilities
* `biomass_estimate()` -- Total and mean biomass from plot data.
* `soil_loss_estimate()` -- Total and mean soil loss estimation.
* `carbon_stock_estimate()` -- Carbon stock from biomass.
* `plot_summary()` -- Descriptive statistics for numeric columns.
* `sampling_efficiency()` -- Relative efficiency of two designs.

### Spatial Sampling (sf + terra)
* `to_sf_points()`, `spatial_random_sample()`,
  `spatial_systematic_sample()`, `spatial_stratified_sample()`,
  `spatial_cluster_sample()`, `raster_stratified_sample()`,
  `raster_pps_sample()`, `extract_raster_values()`,
  `spatial_biomass_estimate()`, `plot_sampling()`, `plot_sampling_gg()`.

### Datasets
* `sample_nrm` -- 100-plot synthetic NRM field dataset.
* `sample_spatial` -- 100-observation geo-referenced NRM dataset.
