我的向量中的符号改变了多少次?

-1 r vector

我希望你能帮我创建一个函数来帮助我确定向量中数字的符号改变了多少次,例如:1,2,-5,-6,-7,5,1, -8 我的函数如何识别有 3 个符号变化?

Tho*_*ing 5

试试下面的代码

> sum(diff(sign(v))!=0)
[1] 3
Run Code Online (Sandbox Code Playgroud)

或者

> sum(rowSums(embed(sign(v), 2)) == 0)
[1] 3
Run Code Online (Sandbox Code Playgroud)

数据

v <- c(1, 2, -5, -6, -7, 5, 1, -8)
Run Code Online (Sandbox Code Playgroud)