如果我有以下向量:
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