我有一个这样的数据框:
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/