r-在我的向量中符号改变了多少次



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

尝试下面的代码

> sum(diff(sign(v))!=0)
[1] 3

> sum(rowSums(embed(sign(v), 2)) == 0)
[1] 3

数据

v <- c(1, 2, -5, -6, -7, 5, 1, -8)

使用rle:

x <- c(1, 2, -5, -6, -7, 5, 1, -8)
length(rle(sign(x))$lengths) - 1
#[1] 3

最新更新