如何找出值超出范围的比例?

时间:2015-04-22 17:21:13

标签: r

v <- c(1,2,3,4,5,6)

我提到max = 4,min = 2

所以,我想知道有多少值超出这个范围。

我可以这样做(v < 2 & v > 4)

但不确定如何计算......

之后我将简单地创建一个相对于总值数的百分比(这里是6)。

2 个答案:

答案 0 :(得分:2)

您可以这样做:

sum(v < 2 | v > 4) / length(v)
[1] 0.5

您希望使用|代替&,因为任何数字都不会小于2且大于4。

答案 1 :(得分:2)

您可以创建逻辑矢量并对其求和。 TRUE元素计为1,FALSE为0,因此这将为您提供与特定条件匹配的元素数。

v <- c(1, 2, 3, 4, 5, 6)

sum(v < 2 | v > 4)

后者返回3,因为有三个值小于2或大于4.比较是矢量化的,因此v < 2测试v的每个元素是否小于2。运算符由R中的|给出。

要获得超出范围的值的比例,您可以将和除以向量的长度,或者使用mean(),因为均值是除以长度的总和。

mean(v < 2 | v > 4)