Problema para calcular erro padrão da média usando with(tapply())

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@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================

Não é mais fácil usar aggregate? d<-data.frame(trat,id,y) # data.frame() é melhor do que cbind() aggregate(data.frame(dados=d$y), list(trat=d$trat, id=d$id), function(x) sd(x)/sqrt(length(x))) 2013/11/12 ASANTOS <alexandresantosbr@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@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================
_______________________________________________ R-br mailing list R-br@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.

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@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@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================
_______________________________________________ R-br mailing list R-br@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.

Obrigado Prof. Paulo e Rodrigo, Problema resolvido, -- ====================================================================== 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@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ====================================================================== Em 12/11/2013 10:28, Paulo Justiniano escreveu:
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@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@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================
_______________________________________________ R-br mailing list R-br@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@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.
participantes (3)
-
ASANTOS
-
Paulo Justiniano
-
Rodrigo Coster