[R-br] RES: [R-br Teste de diferça entre proporções via loop
Cesar Rabak
cesar.rabak em gmail.com
Terça Março 29 17:45:47 BRT 2016
Mauro,
Sua importação de dados gerou uma quinta linha com nº de experimentos menor
que os "acertos" para os testes de proporção.
Veja os seus resultados versus os meus e verás que o valor de N na quinta
linha deve ser 30500 e não 305 como você importou. . .
HTH
--
Cesar Rabak
2016-03-26 17:24 GMT-03:00 Mauro Sznelwar <sznelwar em uol.com.br>:
> Por que não estou conseguindo rodar?
>
>
>
> > dados <- read.table("data_test.txt", header=T, sep= "\t")
>
> > dados$p_valor <- apply(dados[,2:4], 1, function(linha)
> prop.test(x=c(linha[1],linha[2]),n=c(linha[3],linha[3]), correct=F)$p.value)
>
> Error in prop.test(x = c(linha[1], linha[2]), n = c(linha[3], linha[3]),
> :
>
> elements of 'x' must not be greater than those of 'n'
>
> > dados
>
> AREA X1 X2 N
>
> 1 1 1982 9416 11398
>
> 2 2 6546 4084 10630
>
> 3 3 3418 667 4085
>
> 4 4 1503 4408 5911
>
> 5 5 966 339 305
>
> >
>
>
>
>
>
>
>
>
>
> Como sugestão para um código mais enxuto, o objetivo poderia ser atingido
> com a aplicação da função apply:
>
>
>
> > dados <- read.table("data_test.txt", header=T, sep= "\t")
>
> > dados$p_valor <- apply(dados[,2:4], 1, function(linha)
> prop.test(x=c(linha[1],linha[2]),n=c(linha[3],linha[3]), correct=F)$p.value)
>
> > dados
>
> AREA X1 X2 N p_valor
>
> 1 1 1982 9416 11398 0,000000e+00
>
> 2 2 6546 4084 10630 5,362948e-250
>
> 3 3 3418 667 40850 0,000000e+00
>
> 4 4 1503 4408 59110 0,000000e+00
>
> 5 5 966 339 30500 6,472911e-69
>
>
>
> Ademais, se o OP tiver que resolver problemas dessa natureza com
> frequência, pode ser que valha a pena examinar alguns pacotes que têm
> funções para facilitar esse tipo de resumos, como, por exemplo, os pacotes
> *descr* e *reporttools*.
>
>
>
> HTH
>
> --
>
> Cesar Rabak
>
>
>
>
>
> On Wed, Mar 23, 2016 at 1:46 PM, Daniel Tiezzi <dtiezzi em usp.br> wrote:
>
> Boa tarde Wagner
>
>
>
> Supondo que seus dados esteja uma tabela data_test (em anexo)
>
>
>
> acho que você pode resolver assim
>
>
>
>
>
> data<- read.table(“data_test.txt”, header=T, sep= “\t”)
>
>
>
> data_df <- as.data.frame(data)
>
>
>
> res<- list()
>
>
>
> for (i in 1:nrow(data)) {
>
> y<- prop.test(x = c(data$X1[i], data$X2[i]), n = c(data$N[i],
> data$N[i]), correct = FALSE)
>
> x= y$p.value
>
> res[[paste0(i)]] <- x
>
> }
>
>
>
> result <- t(as.data.frame(res))
>
>
>
> data_df1 <- cbind(data_df, result)
>
>
>
> data_df1
>
>
>
>
>
> Espero que funcione
>
>
>
>
>
> daniel
>
>
>
>
>
>
>
> Daniel Tiezzi, MD, PhD
>
> Professor Associado
>
> Departamento de Ginecologia e Obstetrícia
>
> Setor de Mastologia e Oncologia Ginecológica
>
> Faculdade de Medicina de Ribeirão Preto - USP
>
> Tel.: 16 3602-2488
>
> e-mail: dtiezzi em fmrp.usp.br
>
>
>
>
>
>
>
>
>
> On Mar 23, 2016, at 3:50 PM, Wagner Tassinari <wtassinari em gmail.com>
> wrote:
>
>
>
> AREA X1 X2 N p_valor
> 1 1982 9416 11398 ?
> 2 6546 4084 10630 ?
> 3 3418 667 4085 ?
> 4 1503 4408 5911 ?
> 5 966 339 305 ?
>
>
>
>
> ------------------------------
> [image: Avast logo]
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>
> Este email foi escaneado pelo Avast antivírus.
> www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>
>
> _______________________________________________
> 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/20160329/10a386df/attachment.html>
Mais detalhes sobre a lista de discussão R-br