包含NA的字段上的范围

时间:2013-01-20 15:26:33

标签: r range missing-data

我使用的数据集中csv文件的第11列有数字数据。它也包含一些NA值。这是对象的str:

str(dataheart)
 num [1:4706] 14.3 18.5 18.1 NA NA NA 17.7 18 15.9 NA ...

所以,作为R的新生,我原本期望range(dataheart)的结果是最小值和最大值。从查看包含数据的CSV文件,我知道min和max是10.1和21.9。

但上面会返回一个向量

[1] NA NA

我对这个功能的理解不正确吗?

1 个答案:

答案 0 :(得分:50)

你需要

range(x,na.rm=TRUE)

请参阅?range

如需额外赠送金额,请参阅使用base的{​​{1}}和stats个套餐中的各项功能列表:

na.rm

为了进一步考虑R中哪些函数处理uses_na_rm <- function(x) is.function(fx <- get(x)) && "na.rm" %in% names(formals(fx)) basevals <- ls(pos="package:base") basevals[sapply(basevals,uses_na_rm)] ## [1] "colMeans" "colSums" ## [3] "is.unsorted" "mean.default" ## [5] "pmax" "pmax.int" ## [7] "pmin" "pmin.int" ## [9] "range.default" "rowMeans" ## [11] "rowsum.data.frame" "rowsum.default" ## [13] "rowSums" "Summary.data.frame" ## [15] "Summary.Date" "Summary.difftime" ## [17] "Summary.factor" "Summary.numeric_version" ## [19] "Summary.ordered" "Summary.POSIXct" ## [21] "Summary.POSIXlt" statvals <- ls(pos="package:stats") statvals[sapply(statvals,uses_na_rm)] ## [1] "density.default" "fivenum" "heatmap" "IQR" ## [5] "mad" "median" "median.default" "medpolish" ## [9] "quantile.default" "sd" "var" 以及如何处理,可以使用NA参数(na.action和朋友)对函数进行类似搜索。