如何在没有NA的情况下计算中值?

mou*_*_sn 1 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     ..
Run Code Online (Sandbox Code Playgroud)

我使用此代码计算列的中位数.

apply(df[,c(2:4)], 2, median)
Run Code Online (Sandbox Code Playgroud)

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

mne*_*nel 6

使用lapply,不转换为矩阵.

lapply(df[2:4], median, na.rm = TRUE)
Run Code Online (Sandbox Code Playgroud)