Eu tentei criar uma nova função svyquantile (e usando try() dentro dela), mas agora o erro é outro :/require(survey)exemplo <- data.frame(ID = 1:10, var = rnorm(10), var2 = rnorm(10, 5), grupo = factor(c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'D', 'D')), peso = rchisq(10, 5))exemplo[10, 2] <- NAamostra <- svydesign(ids = ~ ID, data = exemplo, weights = ~ peso)svyquantile <- function(x, design, quantiles, ...) {out <- try(survey::svyquantile(x = x, design = design, quantiles = quantiles, ...))termos <- attr(terms(x), "term.labels")out <- if (class(out) == "try-error") { matrix(NA, nrow = length(termos), ncol = length(quantile)) } else { out }colnames(out) <- quantilesrownames(out) <- termosreturn(out)}svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE) # Funcionasurvey::svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE) # Funcionaidentical(svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE), survey::svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE)) # E são iguais!svyby(~ var + var2, ~ grupo, amostra, svyquantile, quantile = .5, na.rm = TRUE) # Não funciona :(2014-09-17 12:19 GMT-03:00 Benilton Carvalho <beniltoncarvalho@gmail.com>:Use o try ou tryCatch para encapsular o comando que falha com poucas observações.
On Sep 17, 2014 11:20 AM, "Rodrigo Coster" <rcoster@gmail.com> wrote:_______________________________________________Caros,Estou usando o pacote survey para calcular a mediana de alguns dados vindos de amostras complexas. O problema é que dependendo das variáveis que peço, algumas combinações apresentam menos de 2 observações válidas, impossibilitando o cálculo (apesar deu achar que 1 observação já seria suficiente, já que ela tem peso maior que 1, mas enfim...)Alguém saberia como fazer o comando não parar, mas sim retornar NA nesses valores?Segue um exemplo simplificado (estou usando os dados da amostra do censo demográfico)require(survey)exemplo <- data.frame(ID = 1:10, var = rnorm(10), grupo = factor(c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'D', 'D')), peso = rchisq(10, 5))exemplo[10, 2] <- NAamostra <- svydesign(ids = ~ ID, data = exemplo, weights = ~ peso)svyby(~ var, ~ grupo, amostra, svyquantile, quantiles = .5)
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.