Skip to content

Commit

Permalink
version 1.1-6
Browse files Browse the repository at this point in the history
  • Loading branch information
Felipe de Mendiburu authored and gaborcsardi committed Dec 2, 2013
1 parent 43f53bd commit 2962791
Show file tree
Hide file tree
Showing 35 changed files with 337 additions and 380 deletions.
12 changes: 6 additions & 6 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
Package: agricolae
Type: Package
Title: Statistical Procedures for Agricultural Research
Version: 1.1-5
Date: 2013-11-04
Version: 1.1-6
Date: 2013-12-02
Author: Felipe de Mendiburu
Maintainer: Felipe de Mendiburu <f.mendiburu@cgiar.org>
Suggests: akima, klaR, MASS, lme4, cluster
Description: Agricolae was presented in the thesis "A statistical analysis tool for agricultural research" to obtain the degree of Master on science, mention Systems Engineering, Faculty of Industrial and Systems Engineering, National Engineering University (UNI), Lima-Peru Agricolae offers extensive functionality on experimental design especially for agricultural and plant breeding experiments, which can also be useful for other purposes. It supports planning of lattice, Alpha, Cyclic, Complete Block, Latin Square, Graeco-Latin Squares, augmented block, split and strip plot designs. There are also various analysis facilities for experimental data, e.g. treatment comparison procedures and several non-parametric tests comparison, biodiversity indexes and consensus cluster.
Suggests: akima, klaR, MASS, nlme, cluster
Description: Agricolae was presented in the thesis "A statistical analysis tool for agricultural research" to obtain the degree of Master on science, mention Systems Engineering, Faculty of Industrial and Systems Engineering, National Engineering University (UNI), Lima-Peru Agricolae offers extensive functionality on experimental design especially for agricultural and plant breeding experiments, which can also be useful for other purposes. It supports planning of lattice, Alpha, Cyclic, Complete Block, Latin Square, Graeco-Latin Squares, augmented block, factorial, split and strip plot designs. There are also various analysis facilities for experimental data, e.g. treatment comparison procedures and several non-parametric tests comparison, biodiversity indexes and consensus cluster.
License: GPL
URL: http://tarwi.lamolina.edu.pe/~fmendiburu
Packaged: 2013-11-04 13:09:54 UTC; fdemendiburu
Packaged: 2013-12-02 13:02:09 UTC; fdemendiburu
NeedsCompilation: no
Repository: CRAN
Date/Publication: 2013-11-04 14:53:40
Date/Publication: 2013-12-02 21:27:46
64 changes: 30 additions & 34 deletions MD5
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
cea2c9d879e61fb253ebcae11c7c8691 *DESCRIPTION
37ff42c44497e7b75d3fbbf7072ceade *DESCRIPTION
e79b1262fe29225e12e495d0c93a8cfd *NAMESPACE
ac915672b4823dd46f1f67401b2e9aae *R/AMMI.R
63bc79669decc3e830d4bc48db2f9b87 *R/AMMI.contour.R
b9c3c5f6813e4a4cf286838e888ca0d8 *R/BIB.test.R
7e240b61c2a28f1cbe51df8b4a1f3090 *R/DAU.test.R
c098195677cd71433eeebd51440c9321 *R/HSD.test.R
327dd6d0acbcccb773820e0ab65c2659 *R/LSD.test.R
38327fe3947c2c3e15b85c4d4adf3437 *R/PBIB.test.R
ff2289519225f501317b5fb2b191b902 *R/PBIB.test.r
de7a7868d7301e7de15636e24e461ff5 *R/SNK.test.R
8394b67492266932ed75c813173b23d8 *R/audpc.R
879499bd1ecc934458b5e7d2475ebed6 *R/bar.err.R
Expand All @@ -18,21 +18,20 @@ d2eabb6c561d9773bfebcd1c11ae8f2b *R/correl.R
1e2e0f4b222b22e0cd73e885cc92fe5c *R/cv.model.R
2c15ef8377587e367e23ee292693fe60 *R/cv.similarity.R
e7eba55bbb855b42b7e4d12c3fa33b98 *R/delete.na.R
b5e6d3d7fc32e033babc40e8e25e3941 *R/design.ab.R
4892638db4dd5696dd0d6bdaa5a9be6a *R/design.alpha.R
a110fced27da69633d7958a445ad94d9 *R/design.bib.R
ff42132c7b07ac20d6a1c4e6f7d9bd68 *R/design.crd.R
c1dab89bbc67173dbefbf10e1d713587 *R/design.cyclic.R
ffa30323fd92bdc11ae3e116e3ff9a9e *R/design.dau.R
c12c13e3a7397434da41a66f93e15012 *R/design.graeco.R
45453d66ca158333701dd81ca4622638 *R/design.lattice.R
fd0138319106167813b91f7fd80ee1f3 *R/design.lsd.R
27e36d5280cd40704d68e382e7a4997d *R/design.rcbd.R
be0c3e013c67afe325bb028d02999cdb *R/design.split.R
ba1664d8911031906315890547073d57 *R/design.strip.R
e3918f81b2e503f65aeb93e8f894982c *R/design.ab.R
82ccbe216b185c36901c33ba9c8ab2b0 *R/design.alpha.R
f5cff62f85999fcdaecd090adb9eab64 *R/design.bib.R
a581dc7c9318e5f94ee69718111f30a7 *R/design.crd.R
e725d72e4ded2c1799b8696c7fa37708 *R/design.cyclic.R
7841c141544a5d2993ccad00da82ba9e *R/design.dau.R
8d8f2c1fb042487f7d86dd7253884f45 *R/design.graeco.R
ee25b445a055f5611e9eb4cabf69e552 *R/design.lattice.R
2a0d6e9a393b6bb59a047f0f28ef62be *R/design.lsd.R
6b7ae26101190934fa63736a8efb0bec *R/design.rcbd.R
7c0bea1eed752e805dc5275417d9bd87 *R/design.split.R
efc4f1e6a9bb44e7d6378a1ec7ab1b04 *R/design.strip.R
a387557878e142d7a82f580301f8de1a *R/duncan.test.r
cf58d05146820ca2943ecfa18bf53f89 *R/durbin.test.R
00d964a077169c76247cc389bd1d1423 *R/fact.nk.R
3825659a484fd9a062e273315d148e96 *R/friedman.R
47e5c328d08f1a0b685fd8123f2789df *R/graph.freq.R
c78890976271a2feb91e9a2b3eddd40c *R/grid3p.R
Expand All @@ -57,7 +56,6 @@ d3965427438791b7ab400c2e456399d8 *R/order.group.R
7d2166dd46e32dccda43fd1124a06acf *R/path.analysis.R
a76382b84367fa44a352db3013017640 *R/plot.graph.freq.R
33510c05a613f6bf250e98203f1079a5 *R/polygon.freq.R
35a23572c169a49a5197a2c55234ac7c *R/random.ab.R
8e136196ddb74e2e0d9dcfabcbc54c49 *R/reg.homog.R
79f5d456dabed74f3aadbb9a787d7efc *R/resampling.cv.R
bd0612f814df5a663e3f7e5c299595f0 *R/resampling.model.R
Expand Down Expand Up @@ -116,8 +114,8 @@ ec644fe2f1fb85a8d096cc5b61888ddd *data/sinRepAmmi.rda
f89bebe0b89dcc945e5d4850104f5570 *data/sweetpotato.rda
93feb78eface8720dbdeff6d343a39e2 *data/wilt.rda
06d77e44fb004716afa58983e3c0ff08 *data/yacon.rda
3d239e241f8a5511976c134668f7ff50 *inst/doc/ENagricolae.pdf
a7bdd20166b12fe95b9451a9635b574f *inst/doc/SPagricolae.pdf
27bb3423bf36ef9b06457f8f213b2cba *inst/doc/ENagricolae.pdf
2281132ccb1bd4ab8641072a9680a7ea *inst/doc/SPagricolae.pdf
8860533aaab5520cf3529100f55f6187 *inst/external/severity.csv
8ca1b77e68c92959eb509d6bc331fb0d *inst/external/weather.csv
ad3a8bbc5a117fe1ede0a9b849b9bd0a *man/AMMI.Rd
Expand All @@ -133,11 +131,11 @@ e3eeed465d019b026a2097ff7a498fa8 *man/DAU.test.Rd
872c2db9c0da0e98657fbd1439c919b8 *man/Hco2006.Rd
0aafec176ec4db23784b5a281e64fff2 *man/LSD.test.Rd
81c57d5edf1d7e2aee447026aead30da *man/LxT.Rd
f138acbd14447d57e26a209201276bcd *man/PBIB.test.Rd
a5cdd160199811a031ae7263a037d437 *man/PBIB.test.Rd
ab9296959478e556bc8f16c88ca3498c *man/RioChillon.Rd
36cc5654c57818ec22e22a2a7d928ae2 *man/SNK.test.Rd
2085a7e0ae45af87124ea2516e8a42da *man/VanderWarden.Rd
c1b7e52ea858f71f2d65a4d090cb7084 *man/agricolae-package.Rd
e5906cbf95432418b2d10ffd579d79dd *man/agricolae-package.Rd
f4371b480b19a062d0366349142113db *man/audpc.Rd
135ff25faa6e9aa661b0d1e9dd30ece0 *man/bar.err.Rd
8d8ee493075ae261ab28c2a67f230aa5 *man/bar.group.Rd
Expand All @@ -151,22 +149,21 @@ a0841c52f307715cd7205a5db647957b *man/correl.Rd
ffd5c86d7151c4eaf5062487337f5ff2 *man/cv.model.Rd
539f8f038b9fb778a1426c43676ec112 *man/cv.similarity.Rd
17df69382fd6c8c666049e7ffe9b1e78 *man/delete.na.Rd
d22c6314a7db10be5d70bcdb4a06b29a *man/design.ab.Rd
8d9c9ab2327dcb5c5ff1266b8faf30b2 *man/design.alpha.Rd
f3a4b9673e9b5190b794f4226047df2d *man/design.bib.Rd
e98f6e49de583fee4339e2edd419d111 *man/design.crd.Rd
70d986ef10ff58a0ff8aff02df615827 *man/design.cyclic.Rd
c498d37e3a28d7222e98fa27dae2a158 *man/design.dau.Rd
955fe6582c6aac50bc15f05cc4992fdd *man/design.graeco.Rd
74a6fc1f9716356cec0f77bc5d0b2299 *man/design.lattice.Rd
19301ea4ebb7fa12de348441ece8a62d *man/design.lsd.Rd
cd8edf98708f8e13102bf59efce7ab2b *man/design.rcbd.Rd
4d29d5dab00c2ce0099d8ed125b89120 *man/design.split.Rd
d60e3bb174d10db79be3c0c511663edc *man/design.strip.Rd
89b74b5b57fb65daf19dde1f809d5fd1 *man/design.ab.Rd
cd81ffa4025909b581f42b28be5523e1 *man/design.alpha.Rd
0370484a79ffca7a59f34b0f76a88f8e *man/design.bib.Rd
6ec65c91b5a7872c3fbe727626090789 *man/design.crd.Rd
ccbbcac86d1be352227165c80c4d0d62 *man/design.cyclic.Rd
5ba441bab495ec17f4c81d2907d3ca53 *man/design.dau.Rd
6c3ad298edd32f2f104db010a3e13e53 *man/design.graeco.Rd
8acfe2395ddb96cbd14af41348497249 *man/design.lattice.Rd
e5133898c9b9d87ea1ad0d4777e31db5 *man/design.lsd.Rd
976fc71746bde646030ee7a924634c48 *man/design.rcbd.Rd
5da280c807765382092918b2ef8f1692 *man/design.split.Rd
9aa74bd5d43a7f7575c792ca700bce0c *man/design.strip.Rd
2cea03b130dcc79ac02f7bd16507d65e *man/disease.Rd
102db3f9712b73e1d8db3b2ad272d09d *man/duncan.test.Rd
4c15d0566ce8a74aa4099dba4b4c6b6d *man/durbin.test.Rd
82baf0121d82aad2b3d6bc4a9f009d28 *man/fact.nk.Rd
4ac1f4d59abcc43acd486f85b111a763 *man/friedman.Rd
4f201c0ad1a51f46826285abce1ef034 *man/frijol.Rd
d110f25a7c11c055be0b2a08e7fc9e64 *man/genxenv.Rd
Expand Down Expand Up @@ -208,7 +205,6 @@ c5d66ae32b2b19c51f13978022e656a0 *man/plot.graph.freq.Rd
c8c99926cf8dee7cca599e0aa4ff3d72 *man/polygon.freq.Rd
2ed8511b3248581a682f9898a5e3213f *man/potato.Rd
baba6e3489bacdfd8fa7dea92e696326 *man/ralstonia.Rd
a42fe6d9423622017fcfed1d1a8cfbea *man/random.ab.Rd
64817c98eb6980273df093c607a3096d *man/reg.homog.Rd
63d57b62e51d1c067e3441bfd469f68e *man/resampling.cv.Rd
10638a25d89d34c4bda2e2aece9b0e7b *man/resampling.model.Rd
Expand Down
76 changes: 35 additions & 41 deletions R/PBIB.test.R
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
`PBIB.test` <-
function (block, trt, replication, y, k, method=c("REML","ML","VC"),
test = c("lsd", "tukey"), alpha = 0.05, group = TRUE,console=FALSE)
function (block, trt, replication, y, k, method=c("REML","ML","VC"),
test = c("lsd", "tukey"), alpha = 0.05, console=FALSE)
{

test <- match.arg(test)
if (test == "lsd")
snk = 3
Expand All @@ -26,7 +25,7 @@
sds<- as.matrix(by(y, trt, function(x) sd(x,na.rm=TRUE)))
std.err<-sds/sqrt(n.rep)
indice <- rownames(mean.trt)

ntr <- nlevels(trt.adj)
r <- nlevels(replication)
s <- ntr/k
Expand All @@ -36,44 +35,43 @@
if(console)cat("\nWarning.. incomplete repetition. Please you use method REML or ML\n")
return()
}
modelo <- formula(paste(name.y, "~ replication + trt.adj+ block.adj%in%replication"))
modelo <- formula(paste(name.y, "~ replication + trt.adj+ block.adj%in%replication"))
model <- lm(modelo)
glerror <- df.residual(model)
ANOVA<-anova(model)
rownames(ANOVA)[2]<-name.trt
CV<- cv.model(model)
CMerror<-as.numeric(deviance(model)/glerror)
Mean<-mean(y,na.rm=TRUE)
if (method == "VC") {
rownames(ANOVA)<- c(name.r,paste(name.trt,".unadj",sep=""),paste(name.b,"/",name.r,sep=""),"Residual")
rownames(ANOVA)<- c(name.r,paste(name.trt,".unadj",sep=""),paste(name.b,"/",name.r,sep=""),"Residual")
}
# Use function lmer #
# Use function lme #
if (method == "REML" | method == "ML") {
trt.adj <- as.factor(trt)

if (method == "REML"){
modlmer <- lmer(y ~ 0+(1 | replication) + trt.adj + (1 | replication/block.adj), REML=TRUE)
model <- lmer(y ~ (1 | replication) + trt.adj + (1 | replication/block.adj), REML=TRUE)
modlmer <- lme(y ~ 0+trt.adj, random = ~1|replication/block.adj, method="REML")
model <- lme(y ~ trt.adj, random = ~1|replication/block.adj, method="REML")
}
if (method == "ML"){
modlmer <- lmer(y ~ 0+(1 | replication) + trt.adj + (1 | replication/block.adj), REML=FALSE)
model <- lmer(y ~ (1 | replication) + trt.adj + (1 | replication/block.adj), REML=FALSE)
modlmer <- lme(y ~ 0+trt.adj, random = ~1|replication/block.adj, method="ML")
model <- lme(y ~ trt.adj, random = ~1|replication/block.adj, method="ML")
}
Afm<-anova(model)
VarRand<- as.numeric(VarCorr(model))
VarRand[2]<-VarRand[2]+VarRand[3]
CMerror<-sigma(model)^2
VarRand[3]<-CMerror
VarRand<-matrix(rep(0,3),nrow=3)
VarRand[c(1,3),1]<- as.numeric(VarCorr(model)[4:5,1])
VarRand[2,1]<-as.numeric(VarCorr(model)[2,1])
CMerror<-as.numeric(VarRand[3,1])
VarRand<-data.frame(VarRand)
names(VarRand)<-"Variance"
rownames(VarRand)<-c(paste(name.b,":",name.r,sep=""),name.r,"Residual")
ANOVA<-ANOVA[c(2,4),]
ANOVA[1,1:4]<-Afm
CMerror<-sigma(model)^2
ANOVA[2,3]<-CMerror
ANOVA[,2]<-ANOVA[,1]*ANOVA[,3]
ANOVA[1,1]<-Afm[2,1];ANOVA[1,4]<-Afm[2,3]; ANOVA[1,5]<-Afm[2,4]
ANOVA[1,3]<- ANOVA[2,3]*ANOVA[1,4]
ANOVA[,2]<-ANOVA[,1]*ANOVA[,3]
ANOVA[2,4:5]<-NA
ANOVA[1,5]<-1-pf(ANOVA[1,4],ANOVA[1,1],ANOVA[2,1])
}
}
#
b <- s * r
glt <- ntr - 1
Expand Down Expand Up @@ -147,23 +145,26 @@
cat("\n\nNumber of observations: ", length(y), "\n\n")
cat("Estimation Method: ",nMethod,"\n\n")
}
Fstat<-data.frame(c(AIC(model),BIC(model)))
rownames(Fstat)<-c("AIC","BIC")
names(Fstat)<-"Fit Statistics"
if (method == "REML" | method == "ML") {
Fstat<-data.frame(c(deviance(model),AIC(model),BIC(model)))
names(Fstat)<-"Fit Statistics"
rownames(Fstat)<-c("-2 Res Log Likelihood","AIC","BIC")
Fstat<-rbind(Fstat,model$logLik)
rownames(Fstat)[3]<-"-2 Res Log Likelihood"
if(console){
cat("Parameter Estimates\n")
print(VarRand)
cat("\n")
print(Fstat)
cat("\n")
}
CV<- sqrt(CMerror)*100/media
}}
if(console){
print(Fstat)
cat("\n")
}
CV<- sqrt(CMerror)*100/media
design<-data.frame("."=c(ntr,k,b/r,r))
rownames(design)<-c(name.trt,paste(name.b,"size"),paste(name.b,"/",name.r,sep=""),name.r)
E <- (ntr - 1) * (r - 1)/((ntr - 1) * (r - 1) + r * (s-1))
if(console){
if(console){
print(ANOVA)
cat("\ncoefficient of variation:", round(CV,1), "%\n")
cat(name.y, "Means:", media, "\n")
Expand Down Expand Up @@ -198,30 +199,23 @@
}
tr.i <- comb[1, ]
tr.j <- comb[2, ]
if (group) {
if(console){cat("\nMeans with the same letter are not significantly different.")
cat("\n\nGroups, Treatments and means\n")}
groups <- order.group(trt = 1:ntr, tauIntra, n.rep, MSerror = NULL,
Tprob = NULL, std.err = dvar, parameter = 1,
snk, DFerror = glerror, alpha, sdtdif = 1, vartau,console=console)
snk, DFerror = glerror, alpha, sdtdif = 1, vartau,console=FALSE)
names(groups)[2] <- "mean.adj"
rownames(groups)<- groups$trt
indices<-as.numeric(as.character(groups$trt))
groups$trt<-indice[indices]
names(groups)[1] <- name.trt
groups<-groups[,1:3]
}
if(console){cat("\nComparison between treatments means and its name\n")
cat("\n<<< to see the objects: means, comparison and groups. >>>\n\n")}
cat("\n<<< to see the objects: means, comparison and groups. >>>\n\n")
comparison <- data.frame(Difference = dif, stderr = stdt,
pvalue = pvalue)
rownames(comparison) <- paste(tr.i, tr.j, sep = " - ")
means <- data.frame(means = mean.trt,trt = 1:ntr, mean.adj = as.numeric(tauIntra),
SE = dvar, r = n.rep, std.err=std.err,Min.=mi,Max.=ma)
names(means)[1]<-name.y
if (!group) groups = NULL
output<-list(method=nMethod,parameters=parameters,statistics=statistics ,
comparison = comparison, means = means, groups = groups, vartau = vartau)

rownames(comparison) <- paste(indice[tr.i], indice[tr.j], sep = " - ")
output<-list(ANOVA=ANOVA,method=nMethod,parameters=parameters,statistics=statistics ,
Fstat=Fstat, comparison = comparison, means = means, groups = groups, vartau = vartau)
invisible(output)
}
70 changes: 47 additions & 23 deletions R/design.ab.R
Original file line number Diff line number Diff line change
@@ -1,28 +1,52 @@
`design.ab` <-
function(A,B,r,number=1,seed=0,kinds="Super-Duper"){
p<-length(A)
q<-length(B)
t<-rep(0,r*p*q)
dim(t)<-c(p*q,r)
ntr<-p*q
if(seed != 0) set.seed(seed,kinds)
trt<-random.ab(p,q)
bloque<-c(rep(1,ntr))
for (y in 2:r){
bloque<-c(bloque,rep(y,ntr))
trt<- rbind(trt, random.ab(p,q))
function(trt, r=NULL,serie=2,design=c("rcbd","crd","lsd"),seed=0,kinds="Super-Duper",
first=FALSE ){
design <- match.arg(design)
if( design=="rcbd" | design=="crd") posicion <- 3
else posicion <- 4
serie<-serie; seed<-seed; kinds<-kinds; first<-first;
# Process to trt to factorial
ntr<-length(trt)
fact<-NULL
tr0<-1:trt[1]
k<-0
a<-trt[1];b<-trt[2]
for(i in 1:a){
for(j in 1:b){
k<-k+1
fact[k]<-paste(tr0[i],j)
}
n<-nrow(trt)
factor1<-rep(NA,n)
factor2<-rep(NA,n)
for ( i in 1:n){
factor1[i]<-A[trt[i,1]]
factor2[i]<-B[trt[i,2]]
}
plots <- number + 1:(ntr * r) - 1
#libro<-cbind(parcela,bloque,trat)
book<-data.frame(plots,block=as.factor(bloque),factor1=as.factor(factor1),
factor2=as.factor(factor2))
names(book)[c(3,4)]<-c(paste(deparse(substitute(A))),paste(deparse(substitute(B))))

if(ntr >2) {
for(m in 3:ntr){
k<-0
tr0<-fact
fact<-NULL
a<-a*b
b<-trt[m]
for(i in 1:a){
for(j in 1:b){
k<-k+1
fact[k]<-paste(tr0[i],j)
}
}
}
}
#------------------------------
if(design=="rcbd")plan<-design.rcbd(trt=fact, r, serie, seed, kinds, first )
if(design=="crd")plan<-design.crd(trt=fact, r, serie, seed, kinds)
if(design=="lsd")plan<-design.lsd(trt=fact, serie, seed, kinds, first )
trt<-as.character(plan[,posicion])
nplan<-nrow(plan)
A<-rep(" ",nplan*ntr)
dim(A)<-c(nplan,ntr)
colnames(A)<-LETTERS[1:ntr]

for(i in 1:nplan) {
A[i,]<-unlist(strsplit(trt[i], " "))
}
A<-as.data.frame(A)
book<-data.frame(plan[,1:(posicion-1)],A)
return(book) }

Loading

0 comments on commit 2962791

Please sign in to comment.