[R-br] RES: [R-br Teste de diferça entre proporções via loop

Mauro Sznelwar sznelwar em uol.com.br
Sábado Março 26 17:24:49 BRT 2016


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       ?

 



---
Este email foi escaneado pelo Avast antivírus.
https://www.avast.com/antivirus
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160326/d383b8e9/attachment.html>


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