我有一个正数和负数的向量
vec<-c(seq(-100,-1), rep(0,20), seq(1,100))
Run Code Online (Sandbox Code Playgroud)
向量大于示例,并采用一组随机值.我必须重复找到载体中的负数的数量......我发现这是非常低效的.
由于我只需要找到负数的数量,并且向量被排序,我只需要知道前0或正数的索引(实际随机向量中可能没有0).
目前我正在使用此代码来查找长度
length(which(vec<0))
Run Code Online (Sandbox Code Playgroud)
但这迫使R遍历整个向量,但由于它已经排序,所以没有必要.
我可以用
match(0, vec)
Run Code Online (Sandbox Code Playgroud)
但我的矢量并不总是0
所以我的问题是,是否有某种match()函数应用条件而不是查找特定值?或者是否有更有效的方法来运行我的which()代码?
谢谢