Estatística Aplicada à Ciência do Solo
|
#-----------------------------------------------------------------------
# Carrega os pacotes necessários.
rm(list = ls())
library(lattice)
library(latticeExtra)
library(nlme)
library(EACS)
#-----------------------------------------------------------------------
# Visualização do desenho experimental.
data(np_carobinha)
str(np_carobinha)
# Nome curto é mais fácil de trabalhar.
np <- np_carobinha
# Níveis de N e P.
unique(sort(np$N))
unique(sort(np$P))
# Combinações presentes no experimento.
cbn <- unique(np[, c("N", "P")])
cbn
# Desenho simétrico.
xyplot(N ~ P, data = cbn, aspect = 1)
xtabs(~epoc + bloc, data = np)
xtabs(~P + N, data = np)
xyplot(msf ~ N | P, data = np, groups = epoc)
xyplot(msf ~ P | N, data = np, groups = epoc)
# Codificar os níveis de N e P para mesma escala centrada.
cod <- function(x) {
u <- unique(x)
stopifnot(length(u) == 5)
u <- sort(u)
m <- u[3]
d <- diff(u[c(2, 4)])/2
z <- (x - m)/d
return(z)
}
# Criando versões codificadas de N e P.
np <- transform(np,
nn = round(cod(N), 2),
pp = round(cod(P), 2),
epoc = factor(epoc))
cbn <- unique(np[, c("nn", "pp")])
# Criando um tratamento categórico de 9 níveis combinando N e P.
np$trat <- with(np,
interaction(round(nn), round(pp),
drop = TRUE))
# Criando o indentificador de unidade experimental.
np$ue <- with(np,
interaction(bloc, trat,
drop = TRUE))
str(np)
# Classifica se é ponto no quadrado ou não (nível codificado +/- 1).
np$quad <- as.integer(with(np, {
abs(nn) == 1 & abs(pp) == 1
}))
#-----------------------------------------------------------------------
# Visualização dos dados.
# Em função dos tratamentos.
xyplot(msf ~ trat | bloc, groups = epoc, data = np)
# Em função dos níveis de N e P.
xyplot.list(list(N = msf ~ N,
P = msf ~ P),
data = np,
groups = epoc,
x.same = FALSE,
xlab = "Nutriente",
ylab = "Massa seca das folhas")
#-----------------------------------------------------------------------
# Ajuste do modelo misto com efeito de bloco e ue aleatórios.
# Modelo saturado com um tratamento categórico de 9 níveis.
m0 <- lme(sqrt(msf) ~ trat * epoc,
random = ~ 1 | bloc/ue,
data = np,
na.action = na.omit,
method = "ML")
m1 <- update(m0, random = ~ 1 | bloc)
anova(m0, m1)
## Model df AIC BIC logLik Test L.Ratio p-value
## m0 1 21 127.7926 175.0111 -42.89632
## m1 2 20 126.2528 171.2226 -43.12637 1 vs 2 0.4600987 0.4976
# # Diagnóstico.
# r <- residuals(m0)
# f <- fitted(m0)
# c(qqmath(r),
# xyplot(r ~ f),
# xyplot(sqrt(abs(r)) ~ f))
#-----------------------------------------------------------------------
# Ajuste dos modelos de efeito fixo dado o não efeito de ue.
m0 <- lm(sqrt(msf) ~ bloc + trat * epoc, data = np)
# Diagnóstico.
par(mfrow = c(2, 2))
plot(m0)
layout(1)
# Quadro de ANOVA.
anova(m0)
## Analysis of Variance Table
##
## Response: sqrt(msf)
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 0.070 0.023 0.0828 0.9691
## trat 8 1.808 0.226 0.8036 0.6024
## epoc 1 80.892 80.892 287.6717 <2e-16 ***
## trat:epoc 8 2.728 0.341 1.2125 0.3116
## Residuals 49 13.779 0.281
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Modelo com N e P contínuos.
m1 <- update(m0, . ~ bloc + (nn + I(nn^2)) * (pp + I(pp^2) * epoc))
anova(m1, m0)
## Analysis of Variance Table
##
## Model 1: sqrt(msf) ~ bloc + nn + I(nn^2) + pp + I(pp^2) + epoc + I(pp^2):epoc +
## nn:pp + nn:I(pp^2) + nn:epoc + I(nn^2):pp + I(nn^2):I(pp^2) +
## I(nn^2):epoc + nn:I(pp^2):epoc + I(nn^2):I(pp^2):epoc
## Model 2: sqrt(msf) ~ bloc + trat * epoc
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 52 13.993
## 2 49 13.779 3 0.21406 0.2538 0.8583
anova(m1)
## Analysis of Variance Table
##
## Response: sqrt(msf)
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 0.070 0.023 0.0865 0.96712
## nn 1 1.101 1.101 4.0906 0.04828 *
## I(nn^2) 1 0.089 0.089 0.3325 0.56670
## pp 1 0.076 0.076 0.2816 0.59792
## I(pp^2) 1 0.012 0.012 0.0455 0.83191
## epoc 1 80.147 80.147 297.8463 < 2e-16 ***
## I(pp^2):epoc 1 0.996 0.996 3.7006 0.05987 .
## nn:pp 1 0.453 0.453 1.6825 0.20032
## nn:I(pp^2) 1 0.513 0.513 1.9057 0.17335
## nn:epoc 1 0.427 0.427 1.5863 0.21347
## I(nn^2):pp 1 0.341 0.341 1.2674 0.26543
## I(nn^2):I(pp^2) 1 0.053 0.053 0.1955 0.66024
## I(nn^2):epoc 1 0.642 0.642 2.3844 0.12861
## nn:I(pp^2):epoc 1 0.104 0.104 0.3880 0.53607
## I(nn^2):I(pp^2):epoc 1 0.260 0.260 0.9660 0.33023
## Residuals 52 13.993 0.269
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Reduz o modelo.
m2 <- update(m0, . ~ bloc + nn + pp + epoc)
anova(m2, m0)
## Analysis of Variance Table
##
## Model 1: sqrt(msf) ~ bloc + nn + pp + epoc
## Model 2: sqrt(msf) ~ bloc + trat * epoc
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 63 18.064
## 2 49 13.779 14 4.2852 1.0885 0.3907
# Quadro de ANOVA.
anova(m2)
## Analysis of Variance Table
##
## Response: sqrt(msf)
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 0.070 0.023 0.0812 0.9700
## nn 1 1.101 1.101 3.8389 0.0545 .
## pp 1 0.077 0.077 0.2702 0.6050
## epoc 1 79.964 79.964 278.8859 <2e-16 ***
## Residuals 63 18.064 0.287
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Estimativas dos parâmetros.
summary(m2)
##
## Call:
## lm(formula = sqrt(msf) ~ bloc + nn + pp + epoc, data = np)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.61253 -0.38955 0.06693 0.35685 0.87432
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.64718 0.14157 18.699 <2e-16 ***
## blocII 0.07960 0.17849 0.446 0.6571
## blocIII -0.05809 0.18419 -0.315 0.7535
## blocIV 0.06058 0.17849 0.339 0.7354
## nn 0.10440 0.05758 1.813 0.0746 .
## pp -0.03571 0.05694 -0.627 0.5329
## epoc770 -2.14163 0.12824 -16.700 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5355 on 63 degrees of freedom
## (2 observations deleted due to missingness)
## Multiple R-squared: 0.818, Adjusted R-squared: 0.8007
## F-statistic: 47.21 on 6 and 63 DF, p-value: < 2.2e-16
Não houve efeito de N e P (\(p > 5%\)) na massa seca de folhas. Apenas o efeito de época foi significativo.
#-----------------------------------------------------------------------
# Predição.
# source(paste0("https://raw.githubusercontent.com/walmes/",
# "wzRfun/master/R/panel.3d.contour.R"))
pred <- expand.grid(nn = seq(-2.2, 2.2, by = 0.2),
pp = seq(-2.2, 2.2, by = 0.2),
epoc = levels(np$epoc),
bloc = levels(np$bloc)[1])
pred$y <- predict(m2, newdata = pred, level = 0)
levelplot(y ~ nn + pp | epoc,
data = pred,
aspect = "iso",
cuts = 50,
contour = TRUE)
# display.brewer.all()
colr <- brewer.pal(11, "Spectral")
colr <- colorRampPalette(colr, space = "rgb")
wireframe(y ~ nn + pp | epoc,
data = pred,
scales = list(arrows = FALSE),
xlab = "Nitrogênio (codificado)",
ylab = "Fósforo (codificado)",
zlab = list("Raíz da Massa Seca de Folhas (g)", rot = 90),
col = "gray50",
col.contour = 1,
panel.3d.wireframe = panel.3d.contour,
type = "on",
col.regions = colr(100),
drape = TRUE,
alpha.regions = 0.5,)
#-----------------------------------------------------------------------
# Visualização dos dados.
# Em função dos tratamentos.
xyplot(Kraiz ~ trat | bloc, groups = epoc, data = np)
# Em função dos níveis de N e P.
xyplot.list(list(N = Kraiz ~ N,
P = Kraiz ~ P),
data = np,
groups = epoc,
x.same = FALSE,
xlab = "Nutriente",
ylab = "Teor de potássio nas raízes")
#-----------------------------------------------------------------------
# Ajuste do modelo misto com efeito de bloco e ue aleatórios.
# Modelo saturado com um tratamento categórico de 9 níveis.
m0 <- lme(Kraiz ~ trat * epoc,
random = ~ 1 | bloc/ue,
data = np,
na.action = na.omit,
method = "ML")
m1 <- update(m0, random = ~ 1 | bloc)
anova(m0, m1)
## Model df AIC BIC logLik Test L.Ratio
## m0 1 21 -99.42884 -52.21044 70.71442
## m1 2 20 -101.42884 -56.45893 70.71442 1 vs 2 6.201617e-11
## p-value
## m0
## m1 1
# # Diagnóstico.
# r <- residuals(m0)
# f <- fitted(m0)
# c(qqmath(r),
# xyplot(r ~ f),
# xyplot(sqrt(abs(r)) ~ f))
#-----------------------------------------------------------------------
# Ajuste dos modelos de efeito fixo dado o não efeito de ue.
m0 <- lm(Kraiz ~ bloc + trat * epoc, data = np)
# Diagnóstico.
par(mfrow = c(2, 2))
plot(m0)
layout(1)
# Quadro de ANOVA.
anova(m0)
## Analysis of Variance Table
##
## Response: Kraiz
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 0.10279 0.03426 3.4287 0.02409 *
## trat 8 0.05471 0.00684 0.6843 0.70309
## epoc 1 1.47896 1.47896 148.0014 < 2e-16 ***
## trat:epoc 8 0.04078 0.00510 0.5101 0.84291
## Residuals 49 0.48965 0.00999
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Modelo com N e P contínuos.
m1 <- update(m0, . ~ bloc + (nn + I(nn^2)) * (pp + I(pp^2) * epoc))
anova(m1, m0)
## Analysis of Variance Table
##
## Model 1: Kraiz ~ bloc + nn + I(nn^2) + pp + I(pp^2) + epoc + I(pp^2):epoc +
## nn:pp + nn:I(pp^2) + nn:epoc + I(nn^2):pp + I(nn^2):I(pp^2) +
## I(nn^2):epoc + nn:I(pp^2):epoc + I(nn^2):I(pp^2):epoc
## Model 2: Kraiz ~ bloc + trat * epoc
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 52 0.51838
## 2 49 0.48965 3 0.028727 0.9583 0.4199
anova(m1)
## Analysis of Variance Table
##
## Response: Kraiz
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 0.10279 0.03426 3.4370 0.02339 *
## nn 1 0.00582 0.00582 0.5834 0.44843
## I(nn^2) 1 0.00364 0.00364 0.3655 0.54810
## pp 1 0.00237 0.00237 0.2379 0.62777
## I(pp^2) 1 0.01382 0.01382 1.3861 0.24442
## epoc 1 1.46860 1.46860 147.3194 < 2e-16 ***
## I(pp^2):epoc 1 0.00709 0.00709 0.7116 0.40277
## nn:pp 1 0.00781 0.00781 0.7836 0.38012
## nn:I(pp^2) 1 0.00320 0.00320 0.3215 0.57317
## nn:epoc 1 0.00001 0.00001 0.0012 0.97253
## I(nn^2):pp 1 0.00386 0.00386 0.3873 0.53645
## I(nn^2):I(pp^2) 1 0.02567 0.02567 2.5753 0.11460
## I(nn^2):epoc 1 0.00159 0.00159 0.1599 0.69088
## nn:I(pp^2):epoc 1 0.00018 0.00018 0.0178 0.89432
## I(nn^2):I(pp^2):epoc 1 0.00205 0.00205 0.2053 0.65238
## Residuals 52 0.51838 0.00997
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
m2 <- update(m0, . ~ bloc + nn + pp + epoc)
anova(m2, m0)
## Analysis of Variance Table
##
## Model 1: Kraiz ~ bloc + nn + pp + epoc
## Model 2: Kraiz ~ bloc + trat * epoc
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 63 0.57770
## 2 49 0.48965 14 0.088051 0.6294 0.8274
# Quadro de ANOVA e estimativas dos parâmetros.
anova(m2)
## Analysis of Variance Table
##
## Response: Kraiz
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 0.10279 0.03426 3.7364 0.01548 *
## nn 1 0.00582 0.00582 0.6342 0.42879
## pp 1 0.00243 0.00243 0.2653 0.60829
## epoc 1 1.47815 1.47815 161.1961 < 2e-16 ***
## Residuals 63 0.57770 0.00917
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(m2)
##
## Call:
## lm(formula = Kraiz ~ bloc + nn + pp + epoc, data = np)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.15003 -0.05510 -0.01766 0.04514 0.35914
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.577249 0.025317 22.801 <2e-16 ***
## blocII 0.022099 0.031920 0.692 0.4913
## blocIII 0.080280 0.032939 2.437 0.0176 *
## blocIV 0.006889 0.031920 0.216 0.8298
## nn -0.010584 0.010297 -1.028 0.3079
## pp 0.004415 0.010183 0.434 0.6661
## epoc770 -0.291176 0.022934 -12.696 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.09576 on 63 degrees of freedom
## (2 observations deleted due to missingness)
## Multiple R-squared: 0.7334, Adjusted R-squared: 0.708
## F-statistic: 28.88 on 6 and 63 DF, p-value: 2.461e-16
Não houve efeito de N e P (\(p > 5%\)) no teor de potássio das raízes. Apenas o efeito de época foi significativo.
#-----------------------------------------------------------------------
# Predição.
# source(paste0("https://raw.githubusercontent.com/walmes/",
# "wzRfun/master/R/panel.3d.contour.R"))
pred <- expand.grid(nn = seq(-2.2, 2.2, by = 0.2),
pp = seq(-2.2, 2.2, by = 0.2),
epoc = levels(np$epoc),
bloc = levels(np$bloc)[1])
pred$y <- predict(m2, newdata = pred, level = 0)
levelplot(y ~ nn + pp | epoc,
data = pred,
aspect = "iso",
cuts = 50,
contour = TRUE)
# display.brewer.all()
colr <- brewer.pal(11, "Spectral")
colr <- colorRampPalette(colr, space = "rgb")
wireframe(y ~ nn + pp | epoc,
data = pred,
scales = list(arrows = FALSE),
xlab = "Nitrogênio (codificado)",
ylab = "Fósforo (codificado)",
zlab = list("Teor de Potássio na Raíz", rot = 90),
col = "gray50",
col.contour = 1,
panel.3d.wireframe = panel.3d.contour,
type = "on",
col.regions = colr(100),
drape = TRUE,
alpha.regions = 0.5,)
#-----------------------------------------------------------------------
# Visualização dos dados.
xtabs(!is.na(Kfolh) ~ bloc + epoc, data = np)
## epoc
## bloc 259 770
## I 9 0
## II 9 0
## III 9 0
## IV 9 9
# Em função dos níveis de N e P.
xyplot.list(list(N = Kfolh ~ N,
P = Kfolh ~ P),
data = np,
groups = epoc,
x.same = FALSE,
xlab = "Nutriente",
ylab = "Teor de potássio nas folhas")
#-----------------------------------------------------------------------
# Ajuste do modelo para uma época apenas.
m0 <- lm(Kraiz ~ bloc + trat, data = subset(np, epoc == "259"))
# Diagnóstico.
par(mfrow = c(2, 2))
plot(m0)
layout(1)
# Quadro de ANOVA.
anova(m0)
## Analysis of Variance Table
##
## Response: Kraiz
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 0.111297 0.037099 3.686 0.02585 *
## trat 8 0.034781 0.004348 0.432 0.89008
## Residuals 24 0.241557 0.010065
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Modelo com N e P contínuos.
m1 <- update(m0, . ~ bloc + (nn + I(nn^2)) * (pp + I(pp^2)))
anova(m1, m0)
## Analysis of Variance Table
##
## Model 1: Kraiz ~ bloc + nn + I(nn^2) + pp + I(pp^2) + nn:pp + nn:I(pp^2) +
## I(nn^2):pp + I(nn^2):I(pp^2)
## Model 2: Kraiz ~ bloc + trat
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 24 0.24156
## 2 24 0.24156 0 1.3878e-16
anova(m1)
## Analysis of Variance Table
##
## Response: Kraiz
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 0.111297 0.037099 3.6860 0.02585 *
## nn 1 0.003820 0.003820 0.3796 0.54363
## I(nn^2) 1 0.000411 0.000411 0.0408 0.84160
## pp 1 0.001452 0.001452 0.1443 0.70738
## I(pp^2) 1 0.012606 0.012606 1.2525 0.27416
## nn:pp 1 0.001301 0.001301 0.1293 0.72229
## nn:I(pp^2) 1 0.002860 0.002860 0.2842 0.59889
## I(nn^2):pp 1 0.002865 0.002865 0.2846 0.59858
## I(nn^2):I(pp^2) 1 0.009465 0.009465 0.9404 0.34184
## Residuals 24 0.241557 0.010065
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
m2 <- update(m0, . ~ bloc + nn + pp)
anova(m2, m0)
## Analysis of Variance Table
##
## Model 1: Kraiz ~ bloc + nn + pp
## Model 2: Kraiz ~ bloc + trat
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 30 0.27104
## 2 24 0.24156 6 0.029488 0.4883 0.8105
anova(m2)
## Analysis of Variance Table
##
## Response: Kraiz
## Df Sum Sq Mean Sq F value Pr(>F)
## bloc 3 0.111297 0.037099 4.1062 0.01486 *
## nn 1 0.003820 0.003820 0.4228 0.52047
## pp 1 0.001473 0.001473 0.1631 0.68922
## Residuals 30 0.271045 0.009035
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(m2)
##
## Call:
## lm(formula = Kraiz ~ bloc + nn + pp, data = subset(np, epoc ==
## "259"))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.133263 -0.057803 -0.000182 0.050801 0.221132
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.577646 0.031684 18.231 <2e-16 ***
## blocII -0.022044 0.044808 -0.492 0.6263
## blocIII 0.121240 0.044808 2.706 0.0111 *
## blocIV 0.008266 0.044808 0.184 0.8549
## nn -0.004521 0.014437 -0.313 0.7563
## pp -0.005765 0.014278 -0.404 0.6892
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.09505 on 30 degrees of freedom
## Multiple R-squared: 0.3008, Adjusted R-squared: 0.1842
## F-statistic: 2.581 on 5 and 30 DF, p-value: 0.04675
Não houve efeito de N e P (\(p > 5%\)) no teor de potássio das folhas.
#-----------------------------------------------------------------------
# Predição.
# source(paste0("https://raw.githubusercontent.com/walmes/",
# "wzRfun/master/R/panel.3d.contour.R"))
pred <- expand.grid(nn = seq(-2.2, 2.2, by = 0.2),
pp = seq(-2.2, 2.2, by = 0.2),
bloc = levels(np$bloc)[1])
pred$y <- predict(m2, newdata = pred)
levelplot(y ~ nn + pp,
data = pred,
aspect = "iso",
cuts = 50,
contour = TRUE)
# display.brewer.all()
colr <- brewer.pal(11, "Spectral")
colr <- colorRampPalette(colr, space = "rgb")
wireframe(y ~ nn + pp,
data = pred,
scales = list(arrows = FALSE),
xlab = "Nitrogênio (codificado)",
ylab = "Fósforo (codificado)",
zlab = list("Teor de Potássio na Raíz", rot = 90),
col = "gray50",
col.contour = 1,
panel.3d.wireframe = panel.3d.contour,
type = "on",
col.regions = colr(100),
drape = TRUE,
alpha.regions = 0.5,
screen = list(x = -105, z = -10, y = -145))
## Atualizado em 23 de novembro de 2016.
##
## R version 3.3.2 (2016-10-31)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 16.04.1 LTS
##
## locale:
## [1] LC_CTYPE=pt_BR.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=pt_BR.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=pt_BR.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods
## [7] base
##
## other attached packages:
## [1] EACS_0.0-2 rpart_4.1-10 nFactors_2.3.3
## [4] boot_1.3-18 psych_1.6.9 MASS_7.3-45
## [7] car_2.1-2 reshape2_1.4.1 captioner_2.2.3
## [10] plyr_1.8.4 nlme_3.1-128 latticeExtra_0.6-28
## [13] RColorBrewer_1.1-2 lattice_0.20-34 knitr_1.13
## [16] wzRfun_0.70 gsubfn_0.6-6 proto_0.3-10
## [19] devtools_1.12.0
##
## loaded via a namespace (and not attached):
## [1] zoo_1.7-13 splines_3.3.2 tcltk_3.3.2
## [4] doBy_4.5-15 htmltools_0.3.5 mgcv_1.8-16
## [7] rpanel_1.1-3 yaml_2.1.13 survival_2.39-5
## [10] nloptr_1.0.4 foreign_0.8-67 withr_1.0.2
## [13] multcomp_1.4-6 stringr_1.0.0 MatrixModels_0.4-1
## [16] mvtnorm_1.0-5 codetools_0.2-15 memoise_1.0.0
## [19] evaluate_0.9 SparseM_1.7 quantreg_5.26
## [22] parallel_3.3.2 pbkrtest_0.4-6 curl_0.9.7
## [25] TH.data_1.0-7 Rcpp_0.12.7 formatR_1.4
## [28] lme4_1.1-12 mnormt_1.5-5 digest_0.6.9
## [31] stringi_1.1.1 grid_3.3.2 tools_3.3.2
## [34] sandwich_2.3-4 magrittr_1.5 Matrix_1.2-7.1
## [37] minqa_1.2.4 rmarkdown_1.0 roxygen2_5.0.1
## [40] httr_1.2.1 R6_2.1.2 nnet_7.3-12
## [43] git2r_0.15.0
Estatística Aplicada à Ciência do Solo |
github.com/walmes/EACS |