中位数()作为整数df的NA返回?

时间:2015-04-18 14:54:10

标签: r

拥有数据数据框并使用沿列的中位数应用。即使列中有一些非零条目,我也会获得中位数的NA。我做str(df)以确保所有的df都是整数而且它是。当R表示中位数是NA时,这是什么意思?感谢。

v1  v2  v3..... 
1   3   4
0   0   0
.   .   .

另外,我收到了一堆这样的警告:            " 1:在mean.default中(sort(x,partial = half + 0L:1L)[half + ...:            参数不是数字或逻辑:返回NA"

1 个答案:

答案 0 :(得分:0)

我的解决方案很简单,但也许有一些你没看到的NAs。尝试在最后一个参数(省略号)中使用应用na.rm = FALSE

使用akrun提供的代码。

set.seed(24)
df1 <- as.data.frame(matrix(sample(0:5, 10*5, replace=TRUE), ncol=5))
apply(df1, 2, median)

我添加了一些NA

df1[ 3 , "V2" ] <- NA

然后使用sapply(由于数据框是一种列表,这是相同的)

sapply(df1, median, c(na.rm = TRUE))

编辑:

考虑到str(df1)返回int,即使第3行第V2列有NA。