问题描述
我正在尝试使用K-means方法将r中的以下曲线分为2组。当我运行K均值时,我得到正值聚类在一起,而负值聚类在一起。我正在尝试根据它们的斜率对它们进行聚类,当斜率为正时,第一组为斜率,当斜率为负时,第二组为斜率。 我很确定答案将是将曲线转换为其斜率值,但不确定如何获得曲线的运动斜率。 多谢您的协助。谢谢!
解决方法
这可能是您想要的。我创建了一些垃圾测试数据。
## Some sample data - not sin,but pretty close.
set.seed(1234)
x = sort(runif(200,-pi,pi))
y = sin(x) * (1 + x/20)
## Get derivative
DERIV = diff(y)/diff(x)
## Set up blank plot
plot(x,y,type='n')
## Add curve
segments(x[-length(x)],y[-length(y)],x[-1],y[-1],col=as.numeric(DERIV>0)+1)