在不使用循环的情况下,向量中的元素数大于x

时间:2013-03-08 16:32:12

标签: r loops vector

如果我有以下载体:

x
[1]  1  5  8  9  1  0 15 15

我想知道有多少元素大于10,如何在不使用循环的情况下继续?

我想得到:

2
结果

2 个答案:

答案 0 :(得分:27)

使用lengthsum

> length(x[x > 10])
[1] 2
> sum(x > 10)
[1] 2

在第一种方法中,您将创建一个向量,该子向量设置与您的条件匹配的值,然后检索向量的length

在第二种方法中,您只是创建一个逻辑向量,指出每个值是否与条件(TRUE)匹配或不符合(FALSE)。由于TRUEFALSE等同于“1”和“0”,因此您只需使用sum即可获得答案。

因为第一种方法需要在计数之前进行索引和子集化,所以我几乎可以肯定第二种方法会比第一种方法更快。

答案 1 :(得分:0)

另一种方法:

> length(which(as.vector(x) > 10))
[1] 2