关于r:如何忽略NA的每一列计算平均值

您所在的位置:网站首页 r语言怎么求均值 关于r:如何忽略NA的每一列计算平均值

关于r:如何忽略NA的每一列计算平均值

2023-09-06 03:36| 来源: 网络整理| 查看: 265

本问题已经有最佳答案,请猛点这里访问。

表,data.frame。

其中有12列具有变量名和24行df

喜欢:

1234Var1 Var2 Var3 Var4 Var12 1     NA   2     3    4 5     6    2     3    3 NA    7    8     NA   4

我想计算每列的均值,而忽略Na的 例如:

colMeans(df)

并得到如下结果:

12Var1  Var2  Var3  Var4  Var12  3     6,5   4     3     3,66

我不希望在平均值计算中考虑NA。

我尝试了诸如na.omit,!is.na之类的方法,但没有得到如上所述的预期结果。

相关讨论 colMeans(df, na.rm = TRUE) 是的,行得通! Thanx很简单..:P 您可能想将其发布为答案? 均值的计算是正确的,但是如何在使col名称高于每个均值的同时获得水平的效果呢? 不知道那是什么意思。 您可以使用预期的输出更新帖子吗? 是的,在预期的输出中,您可以看到我想要的。 是列中且均值下方的每个变量名称吗 它给我的期望输出与执行colMeans(df, na.rm = TRUE)时所示的输出相同,我有一个变量名及其下的平均值,不确定丢失了什么。 是的,它给出了一个名为" means"的变量名,但我希望我的数据表的变量名是12且在12个变量中的每个变量名下方是单个平均值。 如Var1-> 3.32 Var2-> 4.55等。

对于data.table dt,如下所示:

12345dt    Var1 Var2 Var3 Var4 Var12 1:    1   NA    2    3     4 2:    5    6    2    3     3 3:   NA    7    8   NA     4

您可以简单地使用lapply():

1dt[, lapply(.SD, mean, na.rm = TRUE)]

结果是:

12   Var1 Var2 Var3 Var4    Var12 1:    3  6.5    4    3 3.666667

相关讨论 除了行意味着什么,您将如何对确切内容进行语法解释? 您可以使用dt[, apply(.SD, 1, mean, na.rm = TRUE)] 由于某种原因,现在dt [,lapply(.SD,Mean,na.rm = TRUE)]给我一个错误:.subset(x,j)中的错误:下标类型列表无效但是在我没有得到错误之前? 哦,好的,我修复了它应该已经转换回数据表的问题



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3