r-在所有情况下,即使指定na.rm=T,也可以在有或没有lapply的情况下获得不同的平均值估计值

  • 本文关键字:情况下 lapply 平均值 na 也可以 rm r mean
  • 更新时间 :
  • 英文 :


我花了几个小时试图解决这个问题,尽管没有成功。我有一百多个结果变量,我正试图估计它们的平均值。当单独计算时(即,不是以循环或矢量化的形式(,我得到了正确的估计。一旦我使用lapply或类似的代码,我得到的估计值就会略有不同。

以下是给出正确答案的独立代码:

prop.table(table(x$polytobacco))
mean(x$polytobacco, na.rm = T)

然而,以下是给出错误估计的应用声明:

varlist = c("polytobacco, ....") # over 100 variables
meanestimates = as.matrix(round(sapply(y[,varlist], function(x) mean(as.numeric(x), na.rm = T)), 1)) %>% as.data.frame() %>% t

提前谢谢。

Ter。

我想,少即是多。我简化了代码,现在给出了正确的结果。

#总体

pooledov = lapply(x[,outcomes], function(x) mean(x, na.rm = T)) %>% as.data.frame()
rownames(pooledov) = "Total"
colnames(pooledov) = outcomes

>#亚组分析

means = foreach(o = outcomes) %:%
foreach (p = predictors) %do% {
tapply(x[,o], x[,p], mean, na.rm =T) %>% as.data.frame()
}

相关内容

最新更新