[R-br] Retornar NA nos que deram errado

Benilton Carvalho beniltoncarvalho em gmail.com
Quinta Setembro 18 12:21:41 BRT 2014


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?

Em 17 de setembro de 2014 14:01, Rodrigo Coster <rcoster em gmail.com>
escreveu:

> 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] <- NA
> amostra <- 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) <- quantiles
> rownames(out) <- termos
> return(out)
> }
>
> svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE) # Funciona
> survey::svyquantile(~ var + var2, amostra, quantile = .5, na.rm = TRUE) #
> Funciona
> identical(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 em 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 em 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] <- NA
>>> amostra <- svydesign(ids = ~ ID, data = exemplo, weights = ~ peso)
>>> svyby(~ var, ~ grupo, amostra, svyquantile, quantiles = .5)
>>>
>>>
>>> _______________________________________________
>>> R-br mailing list
>>> R-br em 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 em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140918/6195cc08/attachment.html>


Mais detalhes sobre a lista de discussão R-br