如果我有以下向量:
x
[1] 1 5 8 9 1 0 15 15
我想知道有多少元素大于 10,不使用循环如何进行?
我想得到:
2
因此
使用length
或sum
:
> length(x[x > 10])
[1] 2
> sum(x > 10)
[1] 2
在第一种方法中,您将创建一个向量子集匹配您的条件的值,然后检索length
向量的 。
在第二种方法中,您只需创建一个逻辑向量来说明每个值是否与条件匹配 ( TRUE
) 或不匹配 ( FALSE
)。既然TRUE
和FALSE
等于“1”和“0”,你可以简单地使用sum
来得到你的答案。
因为第一种方法需要在计数之前建立索引和子集,我几乎可以肯定第二种方法会比第一种更快。
另一种方法:
> length(which(as.vector(x) > 10))
[1] 2