[R-br] Problema para calcular erro padrão da média usando with(tapply())

Paulo Justiniano paulojus em leg.ufpr.br
Terça Novembro 12 11:28:39 BRST 2013


Naso era para funcionar mesmo o inicialmente tentando

Acrescentando detalhes:
seus objetos originais nao possuem os nomes de coluna que voce usou no 
tapply()

procure organizar dados em data-frames e certifique-se que os nomes de 
colunas estao definidos

d<-data.frame(trat=trat,id=id,y=y)
names(d)


Outra coisa evite criar tantos objetos de depois juntar no data.frame()
para nao criar confusao de nomes e objetos no seu workspace

- crie direto no data-frame

d <- data.frame(
        y = c(rnorm(100,5), rnorm(80,20), rnorm(100,15)),
        trat = c(rep(1,100), rep(2,80), rep(3,100)),
        id = c(rep(60,100), rep(84,180))
)

revise sua chamada de funcoes, na.rm nao é um argumento de length()

talvez vc queira isto:
ep.b3<-with(d, tapply(y, list(trat,id), sd, na.rm = T))/with(d, sqrt(tapply(y, list(trat,id), length)))

ou de forma mais direta:

ep.b3<-with(d, tapply(y, list(trat,id), function(x) sd(x, na.rm = T)/length(x)))



ou
- apague os objetos nao necessários apos combina-los no data.frame

On Tue, 12 Nov 2013, Rodrigo Coster wrote:

> Não é mais fácil usar aggregate? 
> 
> 
> 2013/11/12 ASANTOS <alexandresantosbr em yahoo.com.br>
>       Caros membros,
>
>                 Tenho variáveis respostas com diferentes tamanhos de vetores e na hora de calcular o erro padrão da média usando o with() e
>       tapply(), em função dos diferentes comprimentos de vetores , não estou conseguindo calcular, alguém poderia me ajudar, segue CRM:
>
>       y1<-rnorm(100,5)### Variável resposta
>       y2<-rnorm(80,20)
>       y3<-rnorm(100,15)
>       y<-c(y1,y2,y3)
> 
>
>       trat1<-rep(1,100)### Variável explicativa tratamento
>       trat2<-rep(2,80)
>       trat3<-rep(3,100)
>       trat<-c(trat1,trat2,trat3)
>
>       id1<-rep(60,100)### Variável explicativa idade
>       id2<-rep(84,180)
>       id<-c(id1,id2)
>
>       d<-cbind(trat,id,y)
>
>       ep.b3<-with(d, tapply(y, list(trat,id), sd, na.rm = T)) /sqrt(with(d, tapply(y, list(trat,id), length, na.rm = T)))  ### Calculando o
>       erro padrão
>       ep.b3
>
>       --
>       ======================================================================
>       Alexandre dos Santos
>       Proteção Florestal
>       IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
>       Campus Cáceres
>       Caixa Postal 244
>       Avenida dos Ramires, s/n
>       Bairro: Distrito Industrial
>       Cáceres - MT                      CEP: 78.200-000
>       Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
>       e-mails:alexandresantosbr em yahoo.com.br
>               alexandre.santos em cas.ifmt.edu.br
>       Lattes: http://lattes.cnpq.br/1360403201088680
>       ======================================================================
>
>       _______________________________________________
>       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.
> 
> 
> 
>


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