如果我有以下向量:
x
[1] 1 5 8 9 1 0 15 15
Run Code Online (Sandbox Code Playgroud)
我想知道有多少元素大于10,如何在不使用循环的情况下继续?
我想得到:
2
Run Code Online (Sandbox Code Playgroud)
结果是
A5C*_*2T1 28
使用length或sum:
> length(x[x > 10])
[1] 2
> sum(x > 10)
[1] 2
Run Code Online (Sandbox Code Playgroud)
在第一种方法中,您将创建一个向量,该子向量设置与您的条件匹配的值,然后检索length向量.
在第二种方法中,您只是创建一个逻辑向量,指出每个值是与条件(TRUE)匹配还是不匹配(FALSE).由于TRUE并FALSE等同于"1"和"0",您可以简单地sum用来得到答案.
因为第一种方法需要在计数之前进行索引和子集化,所以我几乎可以肯定第二种方法会比第一种方法更快.