<div dir="ltr">Eu nao conheco o survey, mas imagino que seja pq ele precisa combinar as estimativas de cada grupo em um tipo de estimativa final... e ao ter NAs, ele nao saiba lidar... Talvez seja o caso de usar apenas o subconjunto com mais de 2 obs?</div><div class="gmail_extra"><br><div class="gmail_quote">Em 17 de setembro de 2014 14:01, Rodrigo Coster <span dir="ltr"><<a href="mailto:rcoster@gmail.com" target="_blank">rcoster@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Eu tentei criar uma nova função svyquantile (e usando try() dentro dela), mas agora o erro é outro :/<div><br></div><div><div><br></div><div>require(survey)</div><div>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))</div><span class=""><div>exemplo[10, 2] <- NA</div><div>amostra <- svydesign(ids = ~ ID, data = exemplo, weights = ~ peso)</div><div><br></div></span><div>svyquantile <- function(x, design, quantiles, ...) {</div><div><span style="white-space:pre-wrap">    </span>out <- try(survey::svyquantile(x = x, design = design, quantiles = quantiles, ...))</div><div><span style="white-space:pre-wrap">   </span>termos <- attr(terms(x), "term.labels")</div><div><span style="white-space:pre-wrap">     </span>out <- if (class(out) == "try-error") { matrix(NA, nrow = length(termos), ncol = length(quantile)) } else { out }</div><div><span style="white-space:pre-wrap">   </span>colnames(out) <- quantiles</div><div><span style="white-space:pre-wrap">    </span>rownames(out) <- termos</div><div><span style="white-space:pre-wrap">       </span>return(out)</div><div>}</div><div><br></div><div>svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE) # Funciona</div><div>survey::svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE) # Funciona</div><div>identical(svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE), survey::svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE)) # E são iguais!</div></div><div><br></div><div>svyby(~ var + var2, ~ grupo, amostra, svyquantile, quantile = .5, na.rm = TRUE) # Não funciona :(<br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2014-09-17 12:19 GMT-03:00 Benilton Carvalho <span dir="ltr"><<a href="mailto:beniltoncarvalho@gmail.com" target="_blank">beniltoncarvalho@gmail.com</a>></span>:<div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Use o try ou tryCatch para encapsular o comando que falha com poucas observações. </p>
<div class="gmail_quote"><div><div>On Sep 17, 2014 11:20 AM, "Rodrigo Coster" <<a href="mailto:rcoster@gmail.com" target="_blank">rcoster@gmail.com</a>> wrote:<br type="attribution"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Caros,<div><br></div><div>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...)</div><div><br></div><div>Alguém saberia como fazer o comando não parar, mas sim retornar NA nesses valores?</div><div><br></div><div>Segue um exemplo simplificado (estou usando os dados da amostra do censo demográfico)</div><div><br></div><div><div>require(survey)</div><div>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))</div><div>exemplo[10, 2] <- NA</div><div>amostra <- svydesign(ids = ~ ID, data = exemplo, weights = ~ peso)</div><div>svyby(~ var, ~ grupo, amostra, svyquantile, quantiles = .5)</div><div><br></div></div></div>
<br></div></div>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>