如果我有以下载体:
x
[1] 1 5 8 9 1 0 15 15
我想知道有多少元素大于10,如何在不使用循环的情况下继续?
我想得到:
2
结果
答案 0 :(得分:27)
使用length
或sum
:
> length(x[x > 10])
[1] 2
> sum(x > 10)
[1] 2
在第一种方法中,您将创建一个向量,该子向量设置与您的条件匹配的值,然后检索向量的length
。
在第二种方法中,您只是创建一个逻辑向量,指出每个值是否与条件(TRUE
)匹配或不符合(FALSE
)。由于TRUE
和FALSE
等同于“1”和“0”,因此您只需使用sum
即可获得答案。
因为第一种方法需要在计数之前进行索引和子集化,所以我几乎可以肯定第二种方法会比第一种方法更快。
答案 1 :(得分:0)
另一种方法:
> length(which(as.vector(x) > 10))
[1] 2