@@ -1097,33 +1097,26 @@ MMPrdM<-function(pheno,geno,env,para,Para_Name,model,depend=NULL,reshuffle=NULL,
10971097 PrdM_wide <- as.data.frame(PrdM_wide )
10981098 }
10991099 else if (model == " GBLUP" ){
1100- GENO <- as.data.frame(GENO )
1101- rowname <- paste(y [,1 ],y [,2 ], sep = " -" )
1102- rownames(GENO )<- rowname
1103- A <- rrBLUP :: A.mat(GENO )
1104- y2 <- y %> %
1105- group_by(Envs ) %> %
1106- mutate(row_number = row_number()) %> %
1107- mutate(Obs = ifelse(row_number %in% id.V , NA , Obs )) %> %
1108- select(- row_number )
1109- y2 <- as.data.frame(y2 )
1110- dataF = data.frame (genoID = rownames(GENO ),yield = y2 [,ncol(y2 )])
1111- MODEL <- rrBLUP :: kin.blup(data = dataF ,geno = " genoID" ,pheno = " yield" , GAUSS = FALSE , K = A ,
1112- PEV = TRUE ,n.core = 1 ,theta.seq = NULL )
1113- Prd <- MODEL $ pred
1114- PrdM <- data.frame (y2 , Prd = as.numeric(Prd ))
1115- PrdM_wide <- PrdM %> % tidyr :: pivot_wider(
1116- id_cols = " line_code" ,
1117- names_from = " Envs" ,
1118- values_from = " Prd" )
1119- PrdM_wide <- as.data.frame(PrdM_wide )
1120- if ((length(id.V ) != dim(pheno )[1 ])){
1121- PrdM_wide <- PrdM_wide [PrdM_wide $ line_code %in% pheno [id.V ,1 ],]
1122- }
1123- else {(length(id.V ) != dim(pheno )[1 ])
1124- PrdM_wide <- data.frame (line_code = PrdM_wide $ line_code ,Prd = PrdM_wide [[id ]])
1125- }
1126- PrdM_wide <- as.data.frame(PrdM_wide )
1100+ ans <- rrBLUP :: mixed.solve(y = yNa [, ncol(yNa )],
1101+ Z = M )
1102+ e <- as.matrix(ans $ u )
1103+ G.pred <- GENO
1104+ y_pred <- as.matrix(G.pred ) %*% e
1105+ Prd <- c(y_pred [, 1 ]) + c(ans $ beta )
1106+ PrdM <- data.frame (y , Prd = as.numeric(Prd ))
1107+ PrdM_wide <- PrdM %> % tidyr :: pivot_wider(id_cols = " line_code" ,
1108+ names_from = " Envs" , values_from = " Prd" )
1109+ PrdM_wide <- as.data.frame(PrdM_wide )
1110+ if ((length(id.V ) != dim(pheno )[1 ])) {
1111+ PrdM_wide <- PrdM_wide [PrdM_wide $ line_code %in%
1112+ pheno [id.V , 1 ], ]
1113+ }
1114+ else if (length(id.V ) == dim(pheno )[1 ]) {
1115+ PrdM_wide <- data.frame (line_code = PrdM_wide $ line_code ,
1116+ Prd = PrdM_wide [[id ]])
1117+ }
1118+ PrdM_wide <- as.data.frame(PrdM_wide )
1119+ return (PrdM_wide )
11271120 }
11281121 else if (model == " BA" | model == " BC" | model == " BL" | model == " BRR"
11291122 | model == " BB" ){
@@ -1256,7 +1249,7 @@ MMPrdM<-function(pheno,geno,env,para,Para_Name,model,depend=NULL,reshuffle=NULL,
12561249 PrdF <- rbind(PrdF ,PrdM_wide )
12571250 }
12581251 Prd_mean <- PrdF %> % group_by(line_code ) %> % summarize_all(mean )
1259- Prd_mean <- as.data.frame(Prd_mean )
1252+ Prd_mean <- as.data.frame(Prd_mean )*
12601253 return (Prd_mean )
12611254 # Correlation within environment 50 times
12621255 }
0 commit comments