Question: (b) Write an Rcpp function `varC(x)` which computes the sample variance of a numeric vector `x` (assume no missing values). Benchmark your function with a
(b) Write an Rcpp function `varC(x)` which computes the sample variance of a numeric vector `x` (assume no missing values). Benchmark your function with a vector of length 1e5 and compare with `var(x)`.
Hint:
1. Use the computational formula of sample variance! 2. Sample variance is not defined if `length(x)` is 1, return `NaN` in this case.
(c) Similar to (b), but now `x` may contain missing values. Write an Rcpp function `varC(x, na_rm)` that mimics the built in R function `var`:
- when `x` contains missing values and `na_rm` is `FALSE`, returns `NA`; - when `x` contains missing values and `na_rm` is `TRUE`, ignores the missing values and computes the sample variance as is.
Benchmark your function and compare with `var(x, na.rm = TRUE)` by considering vectors of different lengths `n = 100, 1000, 1e4 and 1e5` and different proportions of missingness `p = 0.5, 0.05`, and `0`.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
