为什么mean()和mean(aggregate())返回不同的结果?

用户名

我想计算一个平均值。这是带有示例数据的代码:

# sample data
Nr <- c(1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
dph <- c(3.125000, 6.694737, 4.310680, 11.693735, 103.882353, 11.000000, 7.333333, 20.352941, 5.230769, NA, 4.615385, 47.555556, 2.941176, 18.956522, 44.320000, 28.500000, NA, 10.470588, 19.000000, 25.818182, 43.216783, 51.555556, 8.375000, 6.917647, 9.375000, 5.647059, 4.533333, 27.428571, 14.428571, NA, 1.600000, 5.764706, 4.705882, 55.272727, 2.117647, 30.888889, 41.222222, 23.444444, 2.428571, 6.200000, 17.076923, 21.280000, 40.829268, 14.500000, 6.250000, NA, 15.040000, 5.687204, 2.400000, NA, 26.375000, 18.064516, 4.000000, 6.139535, 8.470588, 128.666667, 2.235294, 34.181818, 116.000000, 6.000000, 5.777778, 10.666667, 15.428571, 54.823529, 81.315789, 42.333333)
dat <- data.frame(cbind(Nr = Nr, dph = dph))

# calculate mean directly
mean(dat$dph, na.rm = TRUE)
[1] 23.02403

# aggregate first, then calculate mean
mean(aggregate(dph ~ Nr, dat, mean, na.rm = T)$dph)
[1] 22.11743

# 23.02403 != 22.11743

为什么我得到两个不同的结果?


问题说明:

我需要执行Wilcoxon测试,比较基准前和基准后。Pre是3个测量值,post是16。因为Wilcoxon检验需要两个等长的向量,所以我为的每个患者计算pre和post的均值aggregate,从而创建了两个等长的向量。以上数据为准。

编辑:

患者编号 从数据中删除了4个。但是使用Nr <- rep(1:22, 3)返回相同的结果。

塔拉特

我认为这是因为在该mean(dat$x, na.rm=T)版本中,NA删除的每个项都会将观察值减少1,而如果您首先进行汇总,则在示例中,第10行(ID 11)中有一个NA,该行已删除,但由于其他行ID为11的不包含NA(或其中至少一个不包含),用于计算每个IDmean 事后汇总的观察值(唯一ID)不会对每个NA减少1。因此,IMO的区别在于将的总和除以dph两次观测得到的结果在两种计算中应相同。

您可以通过将NA条目更改为0并再次计算两个版本的均值来验证这一点,它们将返回相同的值。

但通常您应该注意,它仅在这里起作用,因为您对每个ID拥有相同数量的观察值(本例中为3)。如果它们不同,您将再次获得不同的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么mean()和mean(aggregate())返回不同的结果?

来自分类Dev

为什么checkPermission和has_permission返回不同的结果?

来自分类Dev

为什么.setUTCFullYear()和.setUTCMonth()返回不同的结果

来自分类Dev

为什么pool.map()和map()返回不同的结果?

来自分类Dev

为什么to_char和to_date返回不同的结果

来自分类Dev

为什么Virtuoso SPARQL端点和Jena返回的结果不同?

来自分类Dev

为什么np.mean(x.flatten()== y)的结果不同于np.mean(x == y)?

来自分类Dev

为什么“ numpy.mean”返回“ inf”?

来自分类Dev

为什么strpos返回不同的结果?

来自分类Dev

为什么gethostbyaddr()返回不同的结果?

来自分类Dev

为什么mysql查询返回不同的结果?

来自分类Dev

为什么Dig返回不同的结果

来自分类Dev

为什么bcrypt总是返回不同的结果?

来自分类Dev

为什么(返回)和返回不同?

来自分类Dev

为什么for和while循环的结果不同?

来自分类Dev

为什么cpu和gpu的结果不同?

来自分类Dev

为什么mean()在空的DataFrame上有不同的行为?

来自分类Dev

为什么在Python和Java中按位左移返回不同的结果?

来自分类Dev

为什么rbind()和do.call(rbind,)返回不同的结果?

来自分类Dev

为什么sklearn LatentDirichletAllocation的fit和partial_fit返回不同的结果?

来自分类Dev

为什么data.table :: B [A]和plyr :: join(A,B)返回不同的结果?

来自分类Dev

为什么np.std()和ivot_table(aggfunc = np.std)返回不同的结果

来自分类Dev

当通过当前目录和路径传递时,为什么find返回不同的排序结果?

来自分类Dev

DNS为什么解析www.google.com和google.com返回不同的结果?

来自分类Dev

解释为什么unpack()在Lua中返回不同的结果

来自分类Dev

为什么MATCH AGAINST返回的结果与LIKE不同?

来自分类Dev

为什么下面的联接查询返回不同的结果?

来自分类Dev

为什么这2个MySQL查询返回不同的结果

来自分类Dev

为什么libphonenumber网站返回的结果与libphonenumber库不同?

Related 相关文章

  1. 1

    为什么mean()和mean(aggregate())返回不同的结果?

  2. 2

    为什么checkPermission和has_permission返回不同的结果?

  3. 3

    为什么.setUTCFullYear()和.setUTCMonth()返回不同的结果

  4. 4

    为什么pool.map()和map()返回不同的结果?

  5. 5

    为什么to_char和to_date返回不同的结果

  6. 6

    为什么Virtuoso SPARQL端点和Jena返回的结果不同?

  7. 7

    为什么np.mean(x.flatten()== y)的结果不同于np.mean(x == y)?

  8. 8

    为什么“ numpy.mean”返回“ inf”?

  9. 9

    为什么strpos返回不同的结果?

  10. 10

    为什么gethostbyaddr()返回不同的结果?

  11. 11

    为什么mysql查询返回不同的结果?

  12. 12

    为什么Dig返回不同的结果

  13. 13

    为什么bcrypt总是返回不同的结果?

  14. 14

    为什么(返回)和返回不同?

  15. 15

    为什么for和while循环的结果不同?

  16. 16

    为什么cpu和gpu的结果不同?

  17. 17

    为什么mean()在空的DataFrame上有不同的行为?

  18. 18

    为什么在Python和Java中按位左移返回不同的结果?

  19. 19

    为什么rbind()和do.call(rbind,)返回不同的结果?

  20. 20

    为什么sklearn LatentDirichletAllocation的fit和partial_fit返回不同的结果?

  21. 21

    为什么data.table :: B [A]和plyr :: join(A,B)返回不同的结果?

  22. 22

    为什么np.std()和ivot_table(aggfunc = np.std)返回不同的结果

  23. 23

    当通过当前目录和路径传递时,为什么find返回不同的排序结果?

  24. 24

    DNS为什么解析www.google.com和google.com返回不同的结果?

  25. 25

    解释为什么unpack()在Lua中返回不同的结果

  26. 26

    为什么MATCH AGAINST返回的结果与LIKE不同?

  27. 27

    为什么下面的联接查询返回不同的结果?

  28. 28

    为什么这2个MySQL查询返回不同的结果

  29. 29

    为什么libphonenumber网站返回的结果与libphonenumber库不同?

热门标签

归档