diff --git a/R/bayesmeta.R b/R/bayesmeta.R
index e2a9c49864cbc4d1b72bad1fa3f3deb76d29348d..803291836909a7e0b727247a2115e87180cd77d5 100644
--- a/R/bayesmeta.R
+++ b/R/bayesmeta.R
@@ -453,8 +453,8 @@ bayesmeta.default <- function(y, sigma, labels=names(y),
     stopifnot(n>0, n==round(n), length(individual)==1,
               !is.logical(individual) || !individual)
     if (tau.sample) {  # draw joint, bivariate (tau,mu) pairs:
-      samp <- matrix(NA, nrow=n, ncol=2, dimnames=list(NULL,c("tau","mu")))
-      if (is.numeric(individual) | is.character(individual))
+      samp <- matrix(NA_real_, nrow=n, ncol=2, dimnames=list(NULL,c("tau","mu")))
+      if (predict | is.numeric(individual) | is.character(individual))
           colnames(samp)[2] <- "theta"
       u <- runif(n=n)
       samp[,"tau"] <- apply(matrix(u,ncol=1), 1, function(x){return(qposterior(tau.p=x))})
@@ -465,7 +465,7 @@ bayesmeta.default <- function(y, sigma, labels=names(y),
       }
       samp[,2] <- apply(matrix(samp[,"tau"],ncol=1), 1, cond.sample)
     } else {           # draw marginal, univariate (mu or theta) numbers:
-      samp <- rep(NA, n)
+      samp <- rep(NA_real_, n)
       if (!predict & (is.logical(individual) && (!individual)))
         meansd <- support[,c("mean","sd")]
       else