covaruber / sommer

36 stars 23 forks source link

predict() error in cross-validation #39

Closed MooreZhu closed 2 years ago

MooreZhu commented 2 years ago

I got this error when I do cross-validation, called "Error in [.data.frame(object$dataOriginal, , x) : undefined columns selected". However, the column I choose is really defined. I think I got this error because the function predict() is fail to work, but I remind I can use it in the former version of sommer.

My code looks like this:

rm(list = ls())
setwd("")
getwd()
library(sommer)
library(nadiv)
library(data.table)

dat <- fread("../ABLUP/data/phenotype/phe520.csv",data.table = F,header = T)
for(i in 1:4) dat[,i] = as.factor(as.character(dat[,i]))
head(dat)
str(dat)
summary(dat)
dat2 <- na.omit(dat)
head(dat2)
str(dat2)
summary(dat2)

ped <- fread("../ABLUP/data/pedigree/ped520.csv",data.table = F)
head(ped)
pped =prepPed(ped)
Amat = as.matrix(makeA(pped))
dim(Amat)

Amat <- as.data.frame(Amat)
Amat[1:5,1:5]
id <- ped$ID
Amat <- Amat[which(rownames(Amat)%in%id),which(colnames(Amat)%in%id)]
Amat <- as.matrix(Amat)
Amat[1:5,1:5]
dim(Amat)

set.seed(2022)
# dd <- dat
dd <- dat2
row.names(dd) <- dd$ID
library(caret)
w <- createFolds(1:length(dd$ID),k = 5)
# w

r_pearson <- NULL
r_pearson2 <- NULL
r_spearman <- NULL
r_unbiased <- NULL
r_MSD <- NULL
time <- system.time(
  for(i in 1:5){
  #i=1
  vv <- dd$ID[w[[i]]]
  vv <- as.character(vv)
  tt <- dd
  tt[vv,]$RFI <- NA
  mod.mm = mmer(RFI ~ Gen + Batch + Sex, 
                random = ~ vs(ID,Gu = Amat),
                rcov = ~ units,
                data= tt)
  ablup <- predict(mod.mm,"ID")$pvals
  row.names(ablup) <- ablup$ID
  r_pearson[i] <- cor(ablup[vv,]$predicted.value,dd[vv,]$RFI,
                      method = "pearson")
  r_pearson2[i] <- (cor(ablup[vv,]$predicted.value,dd[vv,]$RFI,
                        method = "pearson"))^2
  r_spearman[i] <- cor(ablup[vv,]$predicted.value,dd[vv,]$RFI,
                       method = "spearman")
  r_unbiased[i] <- summary(lm(dd[vv,]$RFI~ablup[vv,]$predicted.value-1))$coefficients[1]
  #r_unbiased[i] <- cov(dd[vv,]$RFI,ablup[vv,]$predicted.value)/var(ablup[vv,]$predicted.value)
  r_MSD[i] <- mean((dd[vv,]$RFI-ablup[vv,]$predicted.value)^2)
})[3]

time2 <- time
print(time2)

se <- function(x){
  sd(x)/sqrt(length(x))
}

print(r_pearson)
n1 <- mean(r_pearson);n1e <- se(r_pearson)
print(r_pearson2)
n2 <- mean(r_pearson2);n2e <- se(r_pearson2)
print(r_spearman)
n3 <- mean(r_spearman);n3e <- se(r_spearman)
print(r_unbiased)
n4 <- mean(r_unbiased);n4e <- se(r_unbiased)
print(r_MSD)
n5 <- mean(r_MSD);n5e <- se(r_MSD)
ax <- data.frame(type=c("Accur","Relia","Rank","Ubia","MSD","CPU"),
                 value = c(n1,n2,n3,n4,n5,time2),
                 se = c(n1e,n2e,n3e,n4e,n5e,log10(time2)))
fwrite(ax,"ablup_mod.mm_CV.txt",sep="\t")

The first 30 rows of data looks like this:

structure(list(ID = structure(c(401L, 402L, 403L, 444L, 517L, 
404L, 405L, 406L, 407L, 408L, 409L, 410L, 411L, 412L, 413L, 414L, 
415L, 416L, 417L, 418L, 419L, 420L, 421L, 422L, 423L, 424L, 425L, 
426L, 427L, 428L), .Label = c("FX1_10", "FX1_100", "FX1_1000", 
"FX1_1001", "FX1_1002", "FX1_1003", "FX1_1004", "FX1_1005", "FX1_1006", 
"FX1_1007", "FX1_1008", "FX1_1009", "FX1_1011", "FX1_1012", "FX1_1015", 
"FX1_1016", "FX1_1017", "FX1_1018", "FX1_1019", "FX1_102", "FX1_1020", 
"FX1_1021", "FX1_1022", "FX1_1024", "FX1_1025", "FX1_1026", "FX1_1027", 
"FX1_103", "FX1_1030", "FX1_1031", "FX1_1032", "FX1_1034", "FX1_1035", 
"FX1_1036", "FX1_1038", "FX1_105", "FX1_107", "FX1_108", "FX1_109", 
"FX1_110", "FX1_111", "FX1_114", "FX1_115", "FX1_116", "FX1_117", 
"FX1_118", "FX1_119", "FX1_12", "FX1_120", "FX1_121", "FX1_122", 
"FX1_123", "FX1_124", "FX1_1244", "FX1_1245", "FX1_1246", "FX1_1247", 
"FX1_1248", "FX1_1249", "FX1_125", "FX1_1250", "FX1_1251", "FX1_1252", 
"FX1_1253", "FX1_1255", "FX1_1256", "FX1_1257", "FX1_1258", "FX1_1259", 
"FX1_1260", "FX1_1261", "FX1_1262", "FX1_1263", "FX1_1266", "FX1_1267", 
"FX1_1268", "FX1_1269", "FX1_127", "FX1_1270", "FX1_1271", "FX1_1273", 
"FX1_1274", "FX1_1275", "FX1_1276", "FX1_1277", "FX1_1279", "FX1_128", 
"FX1_1280", "FX1_1281", "FX1_1282", "FX1_1283", "FX1_1284", "FX1_1286", 
"FX1_1288", "FX1_1291", "FX1_1292", "FX1_1293", "FX1_1294", "FX1_1295", 
"FX1_1296", "FX1_1297", "FX1_1298", "FX1_1299", "FX1_13", "FX1_130", 
"FX1_1300", "FX1_1301", "FX1_1302", "FX1_1303", "FX1_1306", "FX1_1307", 
"FX1_1308", "FX1_131", "FX1_1311", "FX1_1312", "FX1_1313", "FX1_1315", 
"FX1_1317", "FX1_1318", "FX1_1319", "FX1_132", "FX1_1320", "FX1_133", 
"FX1_134", "FX1_135", "FX1_136", "FX1_137", "FX1_138", "FX1_139", 
"FX1_14", "FX1_140", "FX1_141", "FX1_142", "FX1_143", "FX1_144", 
"FX1_145", "FX1_146", "FX1_147", "FX1_148", "FX1_149", "FX1_15", 
"FX1_150", "FX1_151", "FX1_152", "FX1_154", "FX1_156", "FX1_157", 
"FX1_159", "FX1_161", "FX1_162", "FX1_163", "FX1_164", "FX1_165", 
"FX1_166", "FX1_167", "FX1_168", "FX1_17", "FX1_170", "FX1_171", 
"FX1_172", "FX1_173", "FX1_174", "FX1_175", "FX1_176", "FX1_177", 
"FX1_179", "FX1_18", "FX1_180", "FX1_181", "FX1_182", "FX1_183", 
"FX1_184", "FX1_185", "FX1_186", "FX1_187", "FX1_189", "FX1_19", 
"FX1_191", "FX1_192", "FX1_193", "FX1_194", "FX1_195", "FX1_196", 
"FX1_197", "FX1_199", "FX1_2", "FX1_20", "FX1_200", "FX1_201", 
"FX1_202", "FX1_205", "FX1_206", "FX1_207", "FX1_209", "FX1_21", 
"FX1_210", "FX1_211", "FX1_212", "FX1_213", "FX1_214", "FX4_A1281", 
"FX4_A1282", "FX4_A1283", "FX4_A1284", "FX4_A1285", "FX4_A1286", 
"FX4_A1287", "FX4_A1288", "FX4_A1289", "FX4_A1290", "FX4_A1291", 
"FX4_A1292", "FX4_A1293", "FX4_A1294", "FX4_A1295", "FX4_A1296", 
"FX4_A1299", "FX4_A130", "FX4_A1301", "FX4_A1302", "FX4_A1303", 
"FX4_A1304", "FX4_A1305", "FX4_A1306", "FX4_A1307", "FX4_A1308", 
"FX4_A1309", "FX4_A131", "FX4_A1310", "FX4_A1311", "FX4_A1312", 
"FX4_A1313", "FX4_A1314", "FX4_A1315", "FX4_A1316", "FX4_A1317", 
"FX4_A1318", "FX4_A1319", "FX4_A1320", "FX4_A1322", "FX4_A1323", 
"FX4_A1324", "FX4_A1325", "FX4_A1326", "FX4_A1327", "FX4_A1329", 
"FX4_A133", "FX4_A1330", "FX4_A1331", "FX4_A1332", "FX4_A1333", 
"FX4_A1334", "FX4_A1335", "FX4_A1336", "FX4_A1337", "FX4_A1338", 
"FX4_A1339", "FX4_A134", "FX4_A1340", "FX4_A1341", "FX4_A1343", 
"FX4_A1344", "FX4_A1347", "FX4_A1349", "FX4_A1350", "FX4_A1351", 
"FX4_A1352", "FX4_A1354", "FX4_A1355", "FX4_A1356", "FX4_A1357", 
"FX4_A136", "FX4_A1361", "FX4_A1362", "FX4_A1365", "FX4_A1367", 
"FX4_A1368", "FX4_A137", "FX4_A1370", "FX4_A1371", "FX4_A1372", 
"FX4_A1373", "FX4_A1374", "FX4_A1375", "FX4_A1376", "FX4_A1377", 
"FX4_A1378", "FX4_A1379", "FX4_A138", "FX4_A1380", "FX4_A1381", 
"FX4_A1382", "FX4_A1384", "FX4_A1386", "FX4_A1387", "FX4_A1388", 
"FX4_A1389", "FX4_A139", "FX4_A1391", "FX4_A1392", "FX4_A1393", 
"FX4_A1396", "FX4_A1397", "FX4_A1398", "FX4_A1399", "FX4_A140", 
"FX4_A1400", "FX4_A1401", "FX4_A1402", "FX4_A1404", "FX4_A1405", 
"FX4_A1406", "FX4_A1409", "FX4_A141", "FX4_A1410", "FX4_A1412", 
"FX4_A1413", "FX4_A1415", "FX4_A1416", "FX4_A1417", "FX4_A1418", 
"FX4_A142", "FX4_A1420", "FX4_A1421", "FX4_A1423", "FX4_A1424", 
"FX4_A1425", "FX4_A1426", "FX4_A1428", "FX4_A143", "FX4_A1431", 
"FX4_A1432", "FX4_A1433", "FX4_A1434", "FX4_A1436", "FX4_A1437", 
"FX4_A1439", "FX4_A144", "FX4_A1441", "FX4_A1442", "FX4_A1444", 
"FX4_A1445", "FX4_A1448", "FX4_A1449", "FX4_A145", "FX4_A1450", 
"FX4_A1452", "FX4_A1453", "FX4_A1455", "FX4_A1456", "FX4_A1458", 
"FX4_A1460", "FX4_A1461", "FX4_A1463", "FX4_A1464", "FX4_A1465", 
"FX4_A1469", "FX4_A1471", "FX4_A1472", "FX4_A1473", "FX4_A1474", 
"FX4_A1476", "FX4_A1477", "FX4_A1479", "FX4_A148", "FX4_A1480", 
"FX4_A1481", "FX4_A1482", "FX4_A1484", "FX4_A1485", "FX4_A1487", 
"FX4_A1488", "FX4_A1489", "FX4_A149", "FX4_A1490", "FX4_A1492", 
"FX4_A1493", "FX4_A1496", "FX4_A1497", "FX4_A1498", "FX4_A150", 
"FX4_A1500", "FX4_A1501", "FX4_A1503", "FX4_A1504", "FX4_A1505", 
"FX4_A1506", "FX4_A1508", "FX4_A1509", "FX4_A151", "FX4_A1511", 
"FX4_A1512", "FX4_A1513", "FX4_A1514", "FX4_A1516", "FX4_A1518", 
"FX4_A1519", "FX4_A152", "FX4_A1521", "FX4_A1522", "FX6_A1", 
"FX6_A10", "FX6_A11", "FX6_A1154", "FX6_A1155", "FX6_A1156", 
"FX6_A1157", "FX6_A1158", "FX6_A1159", "FX6_A1160", "FX6_A1161", 
"FX6_A1162", "FX6_A1163", "FX6_A1164", "FX6_A1165", "FX6_A1167", 
"FX6_A1168", "FX6_A1170", "FX6_A1171", "FX6_A1173", "FX6_A1175", 
"FX6_A1176", "FX6_A1177", "FX6_A1178", "FX6_A1179", "FX6_A1181",
"FX6_A1182", "FX6_A1183", "FX6_A1184", "FX6_A1185", "FX6_A1186", 
"FX6_A1187", "FX6_A1188", "FX6_A1189", "FX6_A1191", "FX6_A1192", 
"FX6_A1193", "FX6_A1194", "FX6_A1195", "FX6_A1196", "FX6_A1197", 
"FX6_A1198", "FX6_A1199", "FX6_A12", "FX6_A1201", "FX6_A1202", 
"FX6_A1204", "FX6_A1206", "FX6_A1208", "FX6_A1209", "FX6_A1210", 
"FX6_A1211", "FX6_A1212", "FX6_A1213", "FX6_A1214", "FX6_A1215", 
"FX6_A1216", "FX6_A1218", "FX6_A1219", "FX6_A1220", "FX6_A1221", 
"FX6_A1222", "FX6_A1225", "FX6_A1226", "FX6_A1227", "FX6_A1228", 
"FX6_A1229", "FX6_A1231", "FX6_A1233", "FX6_A1234", "FX6_A1235", 
"FX6_A1236", "FX6_A1237", "FX6_A1238", "FX6_A1245", "FX6_A1246", 
"FX6_A1247", "FX6_A1248", "FX6_A1249", "FX6_A1250", "FX6_A1251", 
"FX6_A1252", "FX6_A1254", "FX6_A1255", "FX6_A1256", "FX6_A1257", 
"FX6_A1258", "FX6_A1259", "FX6_A1260", "FX6_A1261", "FX6_A1262", 
"FX6_A1263", "FX6_A1265", "FX6_A1266", "FX6_A1267", "FX6_A1269", 
"FX6_A1270", "FX6_A1271", "FX6_A1272", "FX6_A1273", "FX6_A1274", 
"FX6_A1277", "FX6_A1279", "FX6_A1280", "FX6_A1281", "FX6_A1282", 
"FX6_A1283", "FX6_A1284", "FX6_A1287", "FX6_A1288", "FX6_A1289", 
"FX6_A1292", "FX6_A1293", "FX6_A1294", "FX6_A1295", "FX6_A1298", 
"FX6_A13", "FX6_A1300", "FX6_A1301", "FX6_A1305"), class = "factor"), 
    Gen = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L), .Label = c("5", "6", "7"), class = "factor"), 
    Batch = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L), .Label = c("1", "10", "5"), class = "factor"), 
    Sex = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L), .Label = c("1", "2"), class = "factor"), 
    RFI = c(3.627217181, -1.154734234, -1.74971223, 0.282745056, 
    6.923385569, 5.424798655, 13.8248368, 0.826463544, 3.334980245, 
    10.5229068, 0.896282303, -1.337765508, 5.263643505, -1.452049182, 
    1.192610925, 0.770879296, 2.151910959, 0.863960067, 2.110246559, 
    0.415996505, -5.685602958, 3.105247295, -6.532683774, 3.823433075, 
    4.712153828, 1.907716294, 2.788733274, 1.722785018, -5.163047648, 
    5.127251835), FCR = c(1.801438849, 1.731690141, 1.750359712, 
    1.736486486, 1.797419355, 1.796428571, 1.893055556, 1.734013605, 
    1.746258503, 1.831125828, 1.790540541, 1.82983871, 1.744736842, 
    1.726666667, 1.789051095, 1.707643312, 1.713548387, 1.700653595, 
    1.709615385, 1.699346405, 1.663265306, 1.737086093, 1.656666667, 
    1.8, 1.748701299, 1.734437086, 1.729411765, 1.736734694, 
    1.674657534, 1.778431373)), row.names = c(NA, 30L), class = "data.frame")

The first 30 rows of ped looks like this:

structure(list(ID = c("FX6_A1", "FX6_A10", "FX6_A11", "FX6_A12", 
"FX6_A13", "FX6_A1154", "FX6_A1155", "FX6_A1156", "FX6_A1157", 
"FX6_A1158", "FX6_A1159", "FX6_A1160", "FX6_A1161", "FX6_A1162", 
"FX6_A1163", "FX6_A1164", "FX6_A1165", "FX6_A1167", "FX6_A1168", 
"FX6_A1170", "FX6_A1171", "FX6_A1173", "FX6_A1175", "FX6_A1176", 
"FX6_A1177", "FX6_A1178", "FX6_A1179", "FX6_A1181", "FX6_A1182", 
"FX6_A1183"), Sire = c("FX5_G98", "FX5_G122", "FX5_G152", "FX5_G103", 
"FX5_G44", "FX5_G113", "FX5_G3", "FX5_G22", "FX5_G177", "FX5_G3", 
"FX5_G13", "FX5_G51", "FX5_G85", "FX5_G185", "FX5_G56", "FX5_G158", 
"FX5_G37", "FX5_G56", "FX5_G120", "FX5_G185", "FX5_G46", "FX5_G145", 
"FX5_G71", "FX5_G16", "FX5_G115", "FX5_G87", "FX5_G185", "FX5_G71", 
"FX5_G131", "FX5_G124"), Dam = c("g6m37144", "g6m53086", "g6m22136", 
"g6m3096", "g6m79031", "g6m28131", "g6m68093", "g6m66007", "g6m37146", 
"g6m11071", "g6m33118", "g6m9137", "g6m36107", "g6m53082", "g6m30128", 
"g6m54089", "g6m22124", "g6m79113", "g6m66126", "g6m33130", "g6m54118", 
"g6m19100", "g6m43118", "g6m66016", "g6m19114", "g6m8103", "g6m33130", 
"g6m43118", "g6m71079", "g6m22118")), row.names = c(NA, 30L), class = "data.frame")

Appreciate any advice, Best Regards, Moore.

covaruber commented 2 years ago

Dear Zhu, unfortunately without a minimal example I can't recreate the error. Have you tried the recent version from GitHub? I recently fixed a bug in the predict function which may be the same you're reporting.

Cheers,

MooreZhu commented 2 years ago

Thank you, I create a minimal example like this.

The first 30 rows of ped looks like this:

structure(list(ID = c("FX6_A1", "FX6_A10", "FX6_A11", "FX6_A12", 
"FX6_A13", "FX6_A1154", "FX6_A1155", "FX6_A1156", "FX6_A1157", 
"FX6_A1158", "FX6_A1159", "FX6_A1160", "FX6_A1161", "FX6_A1162", 
"FX6_A1163", "FX6_A1164", "FX6_A1165", "FX6_A1167", "FX6_A1168", 
"FX6_A1170", "FX6_A1171", "FX6_A1173", "FX6_A1175", "FX6_A1176", 
"FX6_A1177", "FX6_A1178", "FX6_A1179", "FX6_A1181", "FX6_A1182", 
"FX6_A1183"), Sire = c("FX5_G98", "FX5_G122", "FX5_G152", "FX5_G103", 
"FX5_G44", "FX5_G113", "FX5_G3", "FX5_G22", "FX5_G177", "FX5_G3", 
"FX5_G13", "FX5_G51", "FX5_G85", "FX5_G185", "FX5_G56", "FX5_G158", 
"FX5_G37", "FX5_G56", "FX5_G120", "FX5_G185", "FX5_G46", "FX5_G145", 
"FX5_G71", "FX5_G16", "FX5_G115", "FX5_G87", "FX5_G185", "FX5_G71", 
"FX5_G131", "FX5_G124"), Dam = c("g6m37144", "g6m53086", "g6m22136", 
"g6m3096", "g6m79031", "g6m28131", "g6m68093", "g6m66007", "g6m37146", 
"g6m11071", "g6m33118", "g6m9137", "g6m36107", "g6m53082", "g6m30128", 
"g6m54089", "g6m22124", "g6m79113", "g6m66126", "g6m33130", "g6m54118", 
"g6m19100", "g6m43118", "g6m66016", "g6m19114", "g6m8103", "g6m33130", 
"g6m43118", "g6m71079", "g6m22118")), row.names = c(NA, 30L), class = "data.frame")

The first 30 rows of data looks like this:

structure(list(ID = structure(c(401L, 402L, 403L, 444L, 517L, 
404L, 405L, 406L, 407L, 408L, 409L, 410L, 411L, 412L, 413L, 414L, 
415L, 416L, 417L, 418L, 419L, 420L, 421L, 422L, 423L, 424L, 425L, 
426L, 427L, 428L), .Label = c("FX1_10", "FX1_100", "FX1_1000", 
"FX1_1001", "FX1_1002", "FX1_1003", "FX1_1004", "FX1_1005", "FX1_1006", 
"FX1_1007", "FX1_1008", "FX1_1009", "FX1_1011", "FX1_1012", "FX1_1015", 
"FX1_1016", "FX1_1017", "FX1_1018", "FX1_1019", "FX1_102", "FX1_1020", 
"FX1_1021", "FX1_1022", "FX1_1024", "FX1_1025", "FX1_1026", "FX1_1027", 
"FX1_103", "FX1_1030", "FX1_1031", "FX1_1032", "FX1_1034", "FX1_1035", 
"FX1_1036", "FX1_1038", "FX1_105", "FX1_107", "FX1_108", "FX1_109", 
"FX1_110", "FX1_111", "FX1_114", "FX1_115", "FX1_116", "FX1_117", 
"FX1_118", "FX1_119", "FX1_12", "FX1_120", "FX1_121", "FX1_122", 
"FX1_123", "FX1_124", "FX1_1244", "FX1_1245", "FX1_1246", "FX1_1247", 
"FX1_1248", "FX1_1249", "FX1_125", "FX1_1250", "FX1_1251", "FX1_1252", 
"FX1_1253", "FX1_1255", "FX1_1256", "FX1_1257", "FX1_1258", "FX1_1259", 
"FX1_1260", "FX1_1261", "FX1_1262", "FX1_1263", "FX1_1266", "FX1_1267", 
"FX1_1268", "FX1_1269", "FX1_127", "FX1_1270", "FX1_1271", "FX1_1273", 
"FX1_1274", "FX1_1275", "FX1_1276", "FX1_1277", "FX1_1279", "FX1_128", 
"FX1_1280", "FX1_1281", "FX1_1282", "FX1_1283", "FX1_1284", "FX1_1286", 
"FX1_1288", "FX1_1291", "FX1_1292", "FX1_1293", "FX1_1294", "FX1_1295", 
"FX1_1296", "FX1_1297", "FX1_1298", "FX1_1299", "FX1_13", "FX1_130", 
"FX1_1300", "FX1_1301", "FX1_1302", "FX1_1303", "FX1_1306", "FX1_1307", 
"FX1_1308", "FX1_131", "FX1_1311", "FX1_1312", "FX1_1313", "FX1_1315", 
"FX1_1317", "FX1_1318", "FX1_1319", "FX1_132", "FX1_1320", "FX1_133", 
"FX1_134", "FX1_135", "FX1_136", "FX1_137", "FX1_138", "FX1_139", 
"FX1_14", "FX1_140", "FX1_141", "FX1_142", "FX1_143", "FX1_144", 
"FX1_145", "FX1_146", "FX1_147", "FX1_148", "FX1_149", "FX1_15", 
"FX1_150", "FX1_151", "FX1_152", "FX1_154", "FX1_156", "FX1_157", 
"FX1_159", "FX1_161", "FX1_162", "FX1_163", "FX1_164", "FX1_165", 
"FX1_166", "FX1_167", "FX1_168", "FX1_17", "FX1_170", "FX1_171", 
"FX1_172", "FX1_173", "FX1_174", "FX1_175", "FX1_176", "FX1_177", 
"FX1_179", "FX1_18", "FX1_180", "FX1_181", "FX1_182", "FX1_183", 
"FX1_184", "FX1_185", "FX1_186", "FX1_187", "FX1_189", "FX1_19", 
"FX1_191", "FX1_192", "FX1_193", "FX1_194", "FX1_195", "FX1_196", 
"FX1_197", "FX1_199", "FX1_2", "FX1_20", "FX1_200", "FX1_201", 
"FX1_202", "FX1_205", "FX1_206", "FX1_207", "FX1_209", "FX1_21", 
"FX1_210", "FX1_211", "FX1_212", "FX1_213", "FX1_214", "FX4_A1281", 
"FX4_A1282", "FX4_A1283", "FX4_A1284", "FX4_A1285", "FX4_A1286", 
"FX4_A1287", "FX4_A1288", "FX4_A1289", "FX4_A1290", "FX4_A1291", 
"FX4_A1292", "FX4_A1293", "FX4_A1294", "FX4_A1295", "FX4_A1296", 
"FX4_A1299", "FX4_A130", "FX4_A1301", "FX4_A1302", "FX4_A1303", 
"FX4_A1304", "FX4_A1305", "FX4_A1306", "FX4_A1307", "FX4_A1308", 
"FX4_A1309", "FX4_A131", "FX4_A1310", "FX4_A1311", "FX4_A1312", 
"FX4_A1313", "FX4_A1314", "FX4_A1315", "FX4_A1316", "FX4_A1317", 
"FX4_A1318", "FX4_A1319", "FX4_A1320", "FX4_A1322", "FX4_A1323", 
"FX4_A1324", "FX4_A1325", "FX4_A1326", "FX4_A1327", "FX4_A1329", 
"FX4_A133", "FX4_A1330", "FX4_A1331", "FX4_A1332", "FX4_A1333", 
"FX4_A1334", "FX4_A1335", "FX4_A1336", "FX4_A1337", "FX4_A1338", 
"FX4_A1339", "FX4_A134", "FX4_A1340", "FX4_A1341", "FX4_A1343", 
"FX4_A1344", "FX4_A1347", "FX4_A1349", "FX4_A1350", "FX4_A1351", 
"FX4_A1352", "FX4_A1354", "FX4_A1355", "FX4_A1356", "FX4_A1357", 
"FX4_A136", "FX4_A1361", "FX4_A1362", "FX4_A1365", "FX4_A1367", 
"FX4_A1368", "FX4_A137", "FX4_A1370", "FX4_A1371", "FX4_A1372", 
"FX4_A1373", "FX4_A1374", "FX4_A1375", "FX4_A1376", "FX4_A1377", 
"FX4_A1378", "FX4_A1379", "FX4_A138", "FX4_A1380", "FX4_A1381", 
"FX4_A1382", "FX4_A1384", "FX4_A1386", "FX4_A1387", "FX4_A1388", 
"FX4_A1389", "FX4_A139", "FX4_A1391", "FX4_A1392", "FX4_A1393", 
"FX4_A1396", "FX4_A1397", "FX4_A1398", "FX4_A1399", "FX4_A140", 
"FX4_A1400", "FX4_A1401", "FX4_A1402", "FX4_A1404", "FX4_A1405", 
"FX4_A1406", "FX4_A1409", "FX4_A141", "FX4_A1410", "FX4_A1412", 
"FX4_A1413", "FX4_A1415", "FX4_A1416", "FX4_A1417", "FX4_A1418", 
"FX4_A142", "FX4_A1420", "FX4_A1421", "FX4_A1423", "FX4_A1424", 
"FX4_A1425", "FX4_A1426", "FX4_A1428", "FX4_A143", "FX4_A1431", 
"FX4_A1432", "FX4_A1433", "FX4_A1434", "FX4_A1436", "FX4_A1437", 
"FX4_A1439", "FX4_A144", "FX4_A1441", "FX4_A1442", "FX4_A1444", 
"FX4_A1445", "FX4_A1448", "FX4_A1449", "FX4_A145", "FX4_A1450", 
"FX4_A1452", "FX4_A1453", "FX4_A1455", "FX4_A1456", "FX4_A1458", 
"FX4_A1460", "FX4_A1461", "FX4_A1463", "FX4_A1464", "FX4_A1465", 
"FX4_A1469", "FX4_A1471", "FX4_A1472", "FX4_A1473", "FX4_A1474", 
"FX4_A1476", "FX4_A1477", "FX4_A1479", "FX4_A148", "FX4_A1480", 
"FX4_A1481", "FX4_A1482", "FX4_A1484", "FX4_A1485", "FX4_A1487", 
"FX4_A1488", "FX4_A1489", "FX4_A149", "FX4_A1490", "FX4_A1492", 
"FX4_A1493", "FX4_A1496", "FX4_A1497", "FX4_A1498", "FX4_A150", 
"FX4_A1500", "FX4_A1501", "FX4_A1503", "FX4_A1504", "FX4_A1505", 
"FX4_A1506", "FX4_A1508", "FX4_A1509", "FX4_A151", "FX4_A1511", 
"FX4_A1512", "FX4_A1513", "FX4_A1514", "FX4_A1516", "FX4_A1518", 
"FX4_A1519", "FX4_A152", "FX4_A1521", "FX4_A1522", "FX6_A1", 
"FX6_A10", "FX6_A11", "FX6_A1154", "FX6_A1155", "FX6_A1156", 
"FX6_A1157", "FX6_A1158", "FX6_A1159", "FX6_A1160", "FX6_A1161", 
"FX6_A1162", "FX6_A1163", "FX6_A1164", "FX6_A1165", "FX6_A1167", 
"FX6_A1168", "FX6_A1170", "FX6_A1171", "FX6_A1173", "FX6_A1175", 
"FX6_A1176", "FX6_A1177", "FX6_A1178", "FX6_A1179", "FX6_A1181",
"FX6_A1182", "FX6_A1183", "FX6_A1184", "FX6_A1185", "FX6_A1186", 
"FX6_A1187", "FX6_A1188", "FX6_A1189", "FX6_A1191", "FX6_A1192", 
"FX6_A1193", "FX6_A1194", "FX6_A1195", "FX6_A1196", "FX6_A1197", 
"FX6_A1198", "FX6_A1199", "FX6_A12", "FX6_A1201", "FX6_A1202", 
"FX6_A1204", "FX6_A1206", "FX6_A1208", "FX6_A1209", "FX6_A1210", 
"FX6_A1211", "FX6_A1212", "FX6_A1213", "FX6_A1214", "FX6_A1215", 
"FX6_A1216", "FX6_A1218", "FX6_A1219", "FX6_A1220", "FX6_A1221", 
"FX6_A1222", "FX6_A1225", "FX6_A1226", "FX6_A1227", "FX6_A1228", 
"FX6_A1229", "FX6_A1231", "FX6_A1233", "FX6_A1234", "FX6_A1235", 
"FX6_A1236", "FX6_A1237", "FX6_A1238", "FX6_A1245", "FX6_A1246", 
"FX6_A1247", "FX6_A1248", "FX6_A1249", "FX6_A1250", "FX6_A1251", 
"FX6_A1252", "FX6_A1254", "FX6_A1255", "FX6_A1256", "FX6_A1257", 
"FX6_A1258", "FX6_A1259", "FX6_A1260", "FX6_A1261", "FX6_A1262", 
"FX6_A1263", "FX6_A1265", "FX6_A1266", "FX6_A1267", "FX6_A1269", 
"FX6_A1270", "FX6_A1271", "FX6_A1272", "FX6_A1273", "FX6_A1274", 
"FX6_A1277", "FX6_A1279", "FX6_A1280", "FX6_A1281", "FX6_A1282", 
"FX6_A1283", "FX6_A1284", "FX6_A1287", "FX6_A1288", "FX6_A1289", 
"FX6_A1292", "FX6_A1293", "FX6_A1294", "FX6_A1295", "FX6_A1298", 
"FX6_A13", "FX6_A1300", "FX6_A1301", "FX6_A1305"), class = "factor"), 
    Gen = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L), .Label = c("5", "6", "7"), class = "factor"), 
    Batch = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L), .Label = c("1", "10", "5"), class = "factor"), 
    Sex = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L), .Label = c("1", "2"), class = "factor"), 
    RFI = c(3.627217181, -1.154734234, -1.74971223, 0.282745056, 
    6.923385569, 5.424798655, 13.8248368, 0.826463544, 3.334980245, 
    10.5229068, 0.896282303, -1.337765508, 5.263643505, -1.452049182, 
    1.192610925, 0.770879296, 2.151910959, 0.863960067, 2.110246559, 
    0.415996505, -5.685602958, 3.105247295, -6.532683774, 3.823433075, 
    4.712153828, 1.907716294, 2.788733274, 1.722785018, -5.163047648, 
    5.127251835), FCR = c(1.801438849, 1.731690141, 1.750359712, 
    1.736486486, 1.797419355, 1.796428571, 1.893055556, 1.734013605, 
    1.746258503, 1.831125828, 1.790540541, 1.82983871, 1.744736842, 
    1.726666667, 1.789051095, 1.707643312, 1.713548387, 1.700653595, 
    1.709615385, 1.699346405, 1.663265306, 1.737086093, 1.656666667, 
    1.8, 1.748701299, 1.734437086, 1.729411765, 1.736734694, 
    1.674657534, 1.778431373)), row.names = c(NA, 30L), class = "data.frame")

Best regards,

MooreZhu commented 2 years ago

Thank you, Covarrubias. I asked this question at https://stackoverflow.com/questions/72066686/predict-error-in-cross-validation-sommer-v-4-1-6, with first 30 rows of data. I tried the recent version from GitHub, and got the same error. Thank you for you reply. Best regards,

------------------ 原始邮件 ------------------ 发件人: "covaruber/sommer" @.>; 发送时间: 2022年5月6日(星期五) 上午9:54 @.>; 抄送: "Mo @.**@.>; 主题: Re: [covaruber/sommer] predict() error in cross-validation (Issue #39)

Dear Zhu, unfortunately without a minimal example I can't recreate the error. Have you tried the recent version from GitHub? I recently fixed a bug in the predict function which may be the same you're reporting.

Cheers,

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

covaruber commented 2 years ago

I am sorry Zhu but taking the minimal example I don't run into issues using the current version in GitHub. I had to remove the fixed effects though because the first 30 rows you're sharing only have one level for all fixed effects. But other than I cannot recreate your issue.

Cheers,

MooreZhu commented 2 years ago

Dear Covarrubias, could you receive this email. I reinstalled soommer from GitHub and runned the code again, but got another error like this: Error in modelForMatrices$Beta[unlist(betas0[fToUse]), 1] : subscript out of bounds. I upload the full data, ped and code in the attachments. Thank you again for your reply.

Best regards,

------------------ 原始邮件 ------------------ 发件人: "Mo Zhu" @.>; 发送时间: 2022年5月6日(星期五) 上午10:07 @*.**@*.**@.>; @.***>; 主题: 回复: [covaruber/sommer] predict() error in cross-validation (Issue #39)

Thank you, Covarrubias. I asked this question at https://stackoverflow.com/questions/72066686/predict-error-in-cross-validation-sommer-v-4-1-6, with first 30 rows of data. I tried the recent version from GitHub, and got the same error. Thank you for you reply. Best regards,

------------------ 原始邮件 ------------------ 发件人: "covaruber/sommer" @.>; 发送时间: 2022年5月6日(星期五) 上午9:54 @.>; 抄送: "Mo @.**@.>; 主题: Re: [covaruber/sommer] predict() error in cross-validation (Issue #39)

Dear Zhu, unfortunately without a minimal example I can't recreate the error. Have you tried the recent version from GitHub? I recently fixed a bug in the predict function which may be the same you're reporting.

Cheers,

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

covaruber commented 2 years ago

Once again, I can not recreate your error. This second error is likely coming from you putting more fixed effects that can be estimated making X not full rank and getting this "subscript out of bounds" message. I can't help more than that.

Cheers,