Я использую пакет simpleboot
(https://cran.r-project.org/web/packages/simpleboot/index.html) для получения доверительных интервалов.plyr + simpleboot: NA в векторе вероятности
Это моя функция:
lb_weighted_median_dplyr <- function(x,v) {
set.seed(1234)
b <- one.boot(x, weights = v, FUN = function(x,w) matrixStats::weightedMedian(x, w = v, na.rm = TRUE), R = 100, student = FALSE)
round(perc(b, 0.025), 0)
}
Что функция делает для вычисления нижней границы доверительного интервала, когда я бегу
ddply(wage_by_gender_2015, .(sex,region), summarise, FUN = lb_weighted_median_dplyr(wage, exp_region))
Где wage
это числовой столбец и exp_region
является еще числовой столбец с весами.
У меня нет данных для некоторых регионов, поэтому функция терпит неудачу с некоторыми регионами и возвращает
Error in eval(substitute(expr), envir, enclos) : NA in probability vector
Как я могу обойти эту ошибку и получить NA, как нижняя граница для области без данных?
dplyr
эквивалентный подход, который также возвращает NA in probability vector
является
grouped <- group_by(wage_by_gender_2015, sex, region)
dplyr::summarise(grouped, FUN = lb_weighted_median_dplyr(wage, exp_region))
Соответствующий пример данных здесь: http://users.dcc.uchile.cl/~mvargas/casen/wage_by_gender_2015.RData
Пожалуйста, предоставьте свои данные, используя 'dput()' –
Вы говорите dplyr, но используете функцию plyr ... –
Что вы имеете в виду? который пишет ASCII-текст – pachamaltese