r - 如何计算没有 NA 的中值?

标签 r

我有一个这样的数据框:

df
name    var1  var2  var3  var4  var5 ...
site1    10    20    12    5     ..
site2    15    NA    11    2     ..
site3    NA    11    21    1     ..
site4    9     18    NA    6     ..

我使用这段代码来计算列的中位数。

apply(df[,c(2:4)], 2, median)

但它为第 2 列到第 4 列提供了 NA,因为它们具有 NA 值。如何排除 NA 值并仍然计算每列中其余数据的中位数?如果对子集使用 na.rm=T,所有带有 NA 的行都将被删除,这不是我想要的。感谢您的帮助。

最佳答案

使用lapply,它不会转换为矩阵。

lapply(df[2:4], median, na.rm = TRUE)

关于r - 如何计算没有 NA 的中值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28847020/

相关文章:

r - 在 R 中设置行长度

css - Shiny - 如何设置选定单选按钮标签的样式?

r - 在 ggplot2 中使用 scale_x_date 格式化日期

r - 将否定的逻辑值加在一起时的有趣结果

r - R 文档中数学方程的下标

r - 将正态分布绘制到现有图中

r - ggplot 条形图限制修复

r - 如何在 plotly 中跨子图对齐分组箱线图

r - 如何通过多次观察随机抽取变量样本

r - 将列表与R中的向量合并