X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=R%2FrTrait.R;h=8cc48e17c9e45296c082b33ca33f29e01c3f3296;hb=dfabbb4721bc499ee9e5ee9aadcfd59ff3d4f223;hp=3359df6f71da40c3b8a5d7a254844bafb50b79e3;hpb=24fc6c03893f85a3f9ab3d088201b3731f3035b4;p=ape.git diff --git a/R/rTrait.R b/R/rTrait.R index 3359df6..8cc48e1 100644 --- a/R/rTrait.R +++ b/R/rTrait.R @@ -1,4 +1,4 @@ -## rTrait.R (2010-01-11) +## rTrait.R (2010-05-06) ## Trait Evolution @@ -58,9 +58,12 @@ rTraitDisc <- environment(model) <- environment() # to find 'k' for (i in N:1) x[des[i]] <- model(x[anc[i]], el[i]) } else { + freq <- rep(freq, each = k) + Q <- Q * freq + diag(Q) <- 0 diag(Q) <- -rowSums(Q) for (i in N:1) { - p <- matexpo(Q * freq * el[i])[x[anc[i]], ] + p <- matexpo(Q * el[i])[x[anc[i]], ] x[des[i]] <- .Internal(sample(k, size = 1, FALSE, prob = p)) } }