19

如果我有以下向量:

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

我想知道有多少元素大于 10,不使用循环如何进行?

我想得到:

2

因此

4

2 回答 2

34

使用lengthsum

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

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

在第二种方法中,您只需创建一个逻辑向量来说明每个值是否与条件匹配 ( TRUE) 或不匹配 ( FALSE)。既然TRUEFALSE等于“1”和“0”,你可以简单地使用sum来得到你的答案。

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

于 2013-03-08T16:33:49.147 回答
0

另一种方法:

> length(which(as.vector(x) > 10))
[1] 2
于 2021-01-23T04:21:15.947 回答