Я пытаюсь использовать mapply, потому что я использовал forloop, но это занимает очень много времени, поэтому я пытаюсь использовать mapply для вычисления большого набора данных с разреженной матрицей в r, но я столкнулся с этой ошибкой
Error in (function (t) :
unused arguments (dots[[2]][[1]], dots[[3]][[1]])
Это меньший набор данных
fam <- structure(list(ID = c(1L, 2L, 3L, 4L, 6L, 5L, 7L), dad = c(0L,
0L, 1L, 1L, 1L, 3L, 5L), mum = c(0L, 0L, 0L, 2L, 4L, 4L, 6L),
GEN = c(1L, 1L, 2L, 2L, 3L, 3L, 4L)), class = "data.frame", row.names = c(NA,
-7L))
library(Matrix)
hom = function(fam) {
t1 <- min(which.max(fam$dad > 0), which.max(fam$mum > 0))
t2 <- max(fam[["ID"]])
A<-Matrix(0, nrow=t2,ncol=t2, sparse=TRUE)
diag(A) <- 2-0.5^(fam[["GEN"]]-1)
A<-mapply(t=t1:t2, function(t) A[[t,t]]<- sum(2-0.5^(fam[[t,"GEN"]]- 1)+0.5^(fam[t,"GEN"])*A[fam[t,"dad"],fam[t,"mum"]]),
mapply(j=1:length(t-1), function(j)
A[t,j]<-0.5*sum(c(A[j,fam[t,"dad"]],A[j,fam[t,"mum"]]))
), A <- as.numeric(tril(A)+t(tril(A, -1))))
return(A)
}
Что могло вызвать ошибку и как ее исправить?
Спасибо