拥有数据数据框并使用沿列的中位数应用。即使列中有一些非零条目,我也会获得中位数的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"
答案 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。