我希望您能帮助我创建一个函数,帮助我确定矢量中数字的符号变化了多少次,例如: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