Walmes Zeviani
Milson Evaldo Serafim
Material complementar ao artigo com título ??? submetido à revista ???, volume ???, número ???. A citação será incluída assim que for determinado o volume e paginação.
%% Citação LaTex.
@article{SerafimAbacaxi2014,
author = {},
title = {Desenvolvimento ao longo do ciclo},
doi = {},
journal = {},
month = {},
pages = {},
publisher = {},
url = {},
year = {2014}
}
Donwnload:
##-----------------------------------------------------------------------------
## Definições da sessão, pacotes a serem usados.
## Instruções para instalação do wzRfun em:
## browseURL("https://github.com/walmes/wzRfun")
pkg <- c("lattice", "latticeExtra", "nlme", "reshape", "plyr", "doBy",
"multcomp", "wzRfun")
sapply(pkg, library, character.only=TRUE, logical.return=TRUE)
##-----------------------------------------------------------------------------
## Configurações de cores da lattice.
colp <- brewer.pal(11, "Spectral")
colp <- colorRampPalette(colp, space="rgb")
mycol <- brewer.pal(8, "Dark2")
ps <- list(
box.dot=list(col="black", pch="|"),
box.rectangle=list(col="black", fill=c("gray70")),
box.umbrella=list(col="black", lty=1),
dot.symbol=list(col="black"),
dot.line=list(col="gray90", lty=1),
plot.symbol=list(col="black", cex=0.8),
plot.line=list(col="black", lty=1.2),
plot.polygon=list(col="gray80"),
superpose.line=list(col=mycol),
superpose.symbol=list(col=mycol),
superpose.polygon=list(col=mycol),
regions=list(col=colp(100)),
strip.background=list(col=c("gray90","gray50")),
strip.shingle=list(col=c("gray50","gray90"))
)
trellis.par.set(ps); dev.off()
rm(list=c("colp", "mycol", "ps"))
##-----------------------------------------------------------------------------
## Para colocar as médias sob o centro dos segmentos nos gráficos.
panel.segplot.text <- function(z, centers, txt, ...){
panel.segplot(z=z, centers=centers, ...)
panel.text(y=as.integer(z), x=centers,
label=txt, pos=3)
}
##-----------------------------------------------------------------------------
## Lendo arquivos de dados.
## Url de um arquivo com dados.
url <- "http://www.leg.ufpr.br/~walmes/data/abacaxiciclo.txt"
path <- ifelse(Sys.info()["user"]=="walmes",
yes=basename(url), no=url)
## Importa os dados a partir do arquivo na web.
da <- read.table(file=path, header=TRUE, sep="\t", dec=",")
str(da)
## 'data.frame': 1152 obs. of 9 variables:
## $ trat : int 11 12 13 14 21 22 23 24 31 32 ...
## $ cober: Factor w/ 2 levels "com cobertura",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ gesso: Factor w/ 2 levels "com gesso","sem gesso": 2 2 2 2 2 2 2 2 2 2 ...
## $ vari : Factor w/ 4 levels "HAVAI","IAC - FANTÁSTICO",..: 4 4 4 4 1 1 1 1 2 2 ...
## $ bloc : int 1 2 3 4 1 2 3 4 1 2 ...
## $ dia : Factor w/ 18 levels "2012/02/28","2012/03/28",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ caule: num 41.2 34.8 34.9 35 33.6 ...
## $ copa : num 24.6 18.8 21.2 24.2 18.4 13.2 10 12.8 17.2 15 ...
## $ alt : num 44.4 38.6 41.6 40.8 38.4 32.8 36 31.8 30.4 33 ...
## Converte variáveis para fator.
da <- transform(da,
bloc=factor(bloc),
gesso=factor(gesso, labels=c("4", "0")),
cober=factor(cober, labels=c("Com cobertura",
"Sem cobertura")),
ue=interaction(cober, gesso, vari, bloc,
drop=TRUE, sep=":"))
## Passa dia para formato de data.
da$dia <- as.POSIXct(da$dia, format="%Y/%m/%d")
## Mostra a estrutura do objeto.
str(da)
## 'data.frame': 1152 obs. of 10 variables:
## $ trat : int 11 12 13 14 21 22 23 24 31 32 ...
## $ cober: Factor w/ 2 levels "Com cobertura",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ gesso: Factor w/ 2 levels "4","0": 2 2 2 2 2 2 2 2 2 2 ...
## $ vari : Factor w/ 4 levels "HAVAI","IAC - FANTÁSTICO",..: 4 4 4 4 1 1 1 1 2 2 ...
## $ bloc : Factor w/ 4 levels "1","2","3","4": 1 2 3 4 1 2 3 4 1 2 ...
## $ dia : POSIXct, format: "2012-02-28" "2012-02-28" ...
## $ caule: num 41.2 34.8 34.9 35 33.6 ...
## $ copa : num 24.6 18.8 21.2 24.2 18.4 13.2 10 12.8 17.2 15 ...
## $ alt : num 44.4 38.6 41.6 40.8 38.4 32.8 36 31.8 30.4 33 ...
## $ ue : Factor w/ 64 levels "com cobertura:com gesso:HAVAI:1",..: 16 32 48 64 4 20 36 52 8 24 ...
##-----------------------------------------------------------------------------
## Análise exploratória.
da$gescob <- with(da, interaction(gesso, cober))
p1 <- xyplot(caule~dia|gescob+vari,
groups=bloc, data=da, type="b",
ylab="Diâmetro do caule",
xlab="Data no ciclo")
useOuterStrips(p1)
p1 <- xyplot(copa~dia|gescob+vari,
groups=bloc, data=da, type="b",
ylab="Diâmetro da copa",
xlab="Data no ciclo")
useOuterStrips(p1)
p1 <- xyplot(alt~dia|gescob+vari,
groups=bloc, data=da, type="b",
ylab="Altura da planta",
xlab="Data no ciclo")
useOuterStrips(p1)
## Número de curvas.
nlevels(da$ue)
## [1] 64
##-----------------------------------------------------------------------------
db <- ddply(na.omit(da), .(vari), mutate, diaa=max(dia)-dia)
units(db$diaa) <- "days"
db$diaa <- as.numeric(db$diaa)
db <- subset(db, diaa==0)
p1 <- xyplot(caule~vari|gesso+cober,
groups=bloc, data=db, type="b",
ylab="Diametro do caule",
xlab="Variedade")
useOuterStrips(p1)
p1 <- xyplot(copa~vari|gesso+cober,
groups=bloc, data=db, type="b",
ylab="Diâmetro da copa",
xlab="Variedade")
useOuterStrips(p1)
p1 <- xyplot(alt~vari|gesso+cober,
groups=bloc, data=db, type="b",
ylab="Altura da planta",
xlab="Variedade")
useOuterStrips(p1)
##-----------------------------------------------------------------------------
m0 <- lm(caule~bloc+vari*cober*gesso, data=db)
par(mfrow=c(2,2)); plot(m0); layout(1)
anova(m0)
## Analysis of Variance Table
##
## Response: caule
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 226.84 75.61 2.9296 0.04369 *
## vari 3 1053.35 351.12 13.6037 1.891e-06 ***
## cober 1 70.06 70.06 2.7143 0.10642
## gesso 1 12.67 12.67 0.4910 0.48708
## vari:cober 3 42.72 14.24 0.5518 0.64958
## vari:gesso 3 105.13 35.04 1.3577 0.26781
## cober:gesso 1 2.13 2.13 0.0826 0.77514
## vari:cober:gesso 3 33.70 11.23 0.4353 0.72882
## Residuals 45 1161.47 25.81
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
LSmeans(m0, effect="vari")
## estimate se df t.stat p.value vari
## 1 64.65625 1.270102 45 50.90634 1.999032e-41 HAVAI
## 2 54.63125 1.270102 45 43.01328 3.374871e-38 IAC - FANTÁSTICO
## 3 55.54313 1.270102 45 43.73123 1.629831e-38 IMPERIAL
## 4 55.86188 1.270102 45 43.98220 1.267101e-38 PÉROLA
L <- LSmatrix(m0, effect="vari")
rownames(L) <- levels(da$vari)
grid <- apmc(model=m0, X=L, focus="vari", test="single-step")
grid$vari <- reorder(grid$vari, grid$estimate)
grid$txt <- with(grid, sprintf("%.2f %s", estimate, cld))
## dev.off()
## x11(w=7, h=3.5)
segplot(vari~lwr+upr, centers=estimate, data=grid, draw=FALSE,
xlab=expression(Diâmetro~da~colmo~(mm)),
ylab="Variedade",
txt=grid$txt,
panel=panel.segplot.text)
##-----------------------------------------------------------------------------
m0 <- lm(copa~bloc+vari*cober*gesso, data=db)
par(mfrow=c(2,2)); plot(m0); layout(1)
anova(m0)
## Analysis of Variance Table
##
## Response: copa
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 77.6 25.85 0.3886 0.7617629
## vari 3 6480.4 2160.15 32.4706 2.511e-11 ***
## cober 1 975.0 975.00 14.6559 0.0003962 ***
## gesso 1 546.4 546.39 8.2132 0.0063023 **
## vari:cober 3 172.7 57.58 0.8655 0.4659857
## vari:gesso 3 611.3 203.78 3.0632 0.0375246 *
## cober:gesso 1 54.4 54.39 0.8176 0.3707034
## vari:cober:gesso 3 45.5 15.15 0.2278 0.8765824
## Residuals 45 2993.7 66.53
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Efeito da cobertura.
LSmeans(m0, effect="cober")
## estimate se df t.stat p.value cober
## 1 64.95000 1.441854 45 45.04617 4.424085e-39 Com cobertura
## 2 72.75625 1.441854 45 50.46020 2.950879e-41 Sem cobertura
L <- LSmatrix(m0, effect="cober")
rownames(L) <- levels(da$cober)
grid <- apmc(model=m0, X=L, focus="cober", test="single-step")
grid$txt <- with(grid, sprintf("%.2f %s", estimate, cld))
grid
## cober estimate lwr upr cld txt
## 1 Com cobertura 64.95000 62.04596 67.85404 b 64.95 b
## 2 Sem cobertura 72.75625 69.85221 75.66029 a 72.76 a
##-----------------------------------------------------------------------------
## Estudar o efeito de gesso dentro de cada variedade.
LSmeans(m0, effect=c("gesso", "vari"))
## estimate se df t.stat p.value gesso vari
## 1 71.575 2.883708 45 24.82047 6.752746e-28 4 HAVAI
## 2 69.900 2.883708 45 24.23962 1.822820e-27 0 HAVAI
## 3 61.550 2.883708 45 21.34405 3.563067e-25 4 IAC - FANTÁSTICO
## 4 68.100 2.883708 45 23.61543 5.422779e-27 0 IAC - FANTÁSTICO
## 5 48.450 2.883708 45 16.80128 5.188941e-21 4 IMPERIAL
## 6 63.725 2.883708 45 22.09828 8.531203e-26 0 IMPERIAL
## 7 82.150 2.883708 45 28.48763 1.970303e-30 4 PÉROLA
## 8 85.375 2.883708 45 29.60598 3.795842e-31 0 PÉROLA
Xm <- LSmatrix(m0, effect=c("gesso", "vari"))
grid <- equallevels(attr(Xm, "grid"), db)
L <- by(Xm, INDICES=grid$vari, FUN=as.matrix)
L <- lapply(L, "rownames<-", levels(grid$gesso))
g2 <- lapply(L, apmc, model=m0, focus="gesso")
g2
## $HAVAI
## gesso estimate lwr upr cld
## 1 4 71.575 65.76691 77.38309 a
## 2 0 69.900 64.09191 75.70809 a
##
## $`IAC - FANTÁSTICO`
## gesso estimate lwr upr cld
## 1 4 61.55 55.74191 67.35809 a
## 2 0 68.10 62.29191 73.90809 a
##
## $IMPERIAL
## gesso estimate lwr upr cld
## 1 4 48.450 42.64191 54.25809 b
## 2 0 63.725 57.91691 69.53309 a
##
## $PÉROLA
## gesso estimate lwr upr cld
## 1 4 82.150 76.34191 87.95809 a
## 2 0 85.375 79.56691 91.18309 a
g2 <- ldply(g2); names(g2)[1] <- "vari"
g2 <- equallevels(g2, db)
g2$txt <- with(g2, sprintf("%.2f %s", estimate, cld))
## segplot(vari~lwr+upr, centers=estimate, data=g2, draw=FALSE,
## groups=g2$gesso, pch=g2$gesso, f=0.1, panel=panel.segplotBy,
## xlab=expression(Diâmetro~da~copa~(cm)),
## ylab="Variedade",
## key=list(columns=2, type="o", divide=1,
## title=expression(Gesso~(ton~ha^{-1})), cex.title=1.1,
## lines=list(pch=1:2),
## text=list(levels(g2$gesso))))
segplot(vari~lwr+upr, centers=estimate, data=g2, draw=FALSE,
groups=g2$gesso, pch=g2$gesso, f=0.1, txt=g2$txt,
panel=function (x, y, z, centers, subscripts, groups, f, txt, ...){
d <- 2*((as.numeric(groups)-1)/(nlevels(groups)-1))-1
z <- as.integer(z)+f*d
panel.segplot(x, y, z, centers=centers,
subscripts=subscripts,
...)
panel.text(y=z, x=centers,
label=txt, pos=2+sign(d), cex=0.8)
},
xlab=expression(Diâmetro~da~copa~(cm)),
ylab="Variedade",
key=list(columns=2, type="o", divide=1,
title=expression(Gesso~(ton~ha^{-1})), cex.title=1.1,
lines=list(pch=1:2),
text=list(levels(g2$gesso))))
##-----------------------------------------------------------------------------
m0 <- lm(alt~bloc+vari*cober*gesso, data=db)
par(mfrow=c(2,2)); plot(m0); layout(1)
anova(m0)
## Analysis of Variance Table
##
## Response: alt
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 204.63 68.21 1.3448 0.2718197
## vari 3 2659.06 886.35 17.4742 1.152e-07 ***
## cober 1 820.82 820.82 16.1822 0.0002173 ***
## gesso 1 79.21 79.21 1.5616 0.2178921
## vari:cober 3 173.82 57.94 1.1423 0.3422829
## vari:gesso 3 437.80 145.93 2.8770 0.0463948 *
## cober:gesso 1 8.41 8.41 0.1658 0.6858021
## vari:cober:gesso 3 7.85 2.62 0.0516 0.9843159
## Residuals 45 2282.57 50.72
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Efeito da cobertura.
LSmeans(m0, effect="cober")
## estimate se df t.stat p.value cober
## 1 54.0500 1.259014 45 42.93042 3.673354e-38 Com cobertura
## 2 61.2125 1.259014 45 48.61939 1.525529e-40 Sem cobertura
L <- LSmatrix(m0, effect="cober")
rownames(L) <- levels(da$cober)
grid <- apmc(model=m0, X=L, focus="cober", test="single-step")
grid$txt <- with(grid, sprintf("%.2f %s", estimate, cld))
grid
## cober estimate lwr upr cld txt
## 1 Com cobertura 54.0500 51.51422 56.58578 b 54.05 b
## 2 Sem cobertura 61.2125 58.67672 63.74828 a 61.21 a
##-----------------------------------------------------------------------------
## Estudar o efeito de gesso dentro de cada variedade.
LSmeans(m0, effect=c("gesso", "vari"))
## estimate se df t.stat p.value gesso vari
## 1 67.050 2.518028 45 26.62798 3.479250e-29 4 HAVAI
## 2 64.225 2.518028 45 25.50607 2.145688e-28 0 HAVAI
## 3 56.475 2.518028 45 22.42826 4.623173e-26 4 IAC - FANTÁSTICO
## 4 56.900 2.518028 45 22.59705 3.389334e-26 0 IAC - FANTÁSTICO
## 5 42.425 2.518028 45 16.84850 4.651534e-21 4 IMPERIAL
## 6 53.425 2.518028 45 21.21700 4.551735e-25 0 IMPERIAL
## 7 60.125 2.518028 45 23.87781 3.419014e-27 4 PÉROLA
## 8 60.425 2.518028 45 23.99695 2.776917e-27 0 PÉROLA
Xm <- LSmatrix(m0, effect=c("gesso", "vari"))
grid <- equallevels(attr(Xm, "grid"), db)
L <- by(Xm, INDICES=grid$vari, FUN=as.matrix)
L <- lapply(L, "rownames<-", levels(grid$gesso))
g2 <- lapply(L, apmc, model=m0, focus="gesso")
g2
## $HAVAI
## gesso estimate lwr upr cld
## 1 4 67.050 61.97843 72.12157 a
## 2 0 64.225 59.15343 69.29657 a
##
## $`IAC - FANTÁSTICO`
## gesso estimate lwr upr cld
## 1 4 56.475 51.40343 61.54657 a
## 2 0 56.900 51.82843 61.97157 a
##
## $IMPERIAL
## gesso estimate lwr upr cld
## 1 4 42.425 37.35343 47.49657 b
## 2 0 53.425 48.35343 58.49657 a
##
## $PÉROLA
## gesso estimate lwr upr cld
## 1 4 60.125 55.05343 65.19657 a
## 2 0 60.425 55.35343 65.49657 a
g2 <- ldply(g2); names(g2)[1] <- "vari"
g2 <- equallevels(g2, db)
g2$txt <- with(g2, sprintf("%.2f %s", estimate, cld))
## segplot(vari~lwr+upr, centers=estimate, data=g2, draw=FALSE,
## groups=g2$gesso, pch=g2$gesso, f=0.1, panel=panel.segplotBy,
## xlab=expression(Altura~de~planta~(cm)),
## ylab="Variedade",
## key=list(columns=2, type="o", divide=1,
## title=expression(Gesso~(ton~ha^{-1})), cex.title=1.1,
## lines=list(pch=1:2),
## text=list(levels(g2$gesso))))
segplot(vari~lwr+upr, centers=estimate, data=g2, draw=FALSE,
groups=g2$gesso, pch=g2$gesso, f=0.1, txt=g2$txt,
panel=function (x, y, z, centers, subscripts, groups, f, txt, ...){
d <- 2*((as.numeric(groups)-1)/(nlevels(groups)-1))-1
z <- as.integer(z)+f*d
panel.segplot(x, y, z, centers=centers,
subscripts=subscripts,
...)
panel.text(y=z, x=centers,
label=txt, pos=2+sign(d), cex=0.8)
},
xlab=expression(Altura~de~planta~(cm)),
ylab="Variedade",
key=list(columns=2, type="o", divide=1,
title=expression(Gesso~(ton~ha^{-1})), cex.title=1.1,
lines=list(pch=1:2),
text=list(levels(g2$gesso))))
##-----------------------------------------------------------------------------
## Informações sobre as versões dos pacotes.
sessionInfo()
## R version 3.2.0 (2015-04-16)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 14.04.2 LTS
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=pt_BR.UTF-8
## [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=pt_BR.UTF-8 LC_NAME=C LC_ADDRESS=C
## [10] LC_TELEPHONE=C LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] methods stats graphics grDevices utils datasets base
##
## other attached packages:
## [1] wzRfun_0.5 multcomp_1.3-8 TH.data_1.0-4 mvtnorm_1.0-1
## [5] doBy_4.5-12 survival_2.38-1 plyr_1.8.1 reshape_0.8.5
## [9] nlme_3.1-120 latticeExtra_0.6-26 RColorBrewer_1.0-5 lattice_0.20-31
## [13] rmarkdown_0.3.10 knitr_1.8
##
## loaded via a namespace (and not attached):
## [1] Rcpp_0.11.3 splines_3.2.0 MASS_7.3-39 stringr_0.6.2 tools_3.2.0
## [6] grid_3.2.0 htmltools_0.2.6 yaml_2.1.13 digest_0.6.4 Matrix_1.2-0
## [11] formatR_1.0 evaluate_0.5.5 sandwich_2.3-2 zoo_1.7-11
Sys.time()
## [1] "2015-05-24 17:02:13 BRT"