繁体   English   中英

测试两个向量在R中是增加还是减少

[英]Testing whether two vectors are increasing or decreasing in R

我想知道在基数R中是否有一种方法可以测试两个向量(两者)是增加还是减少?

例如,测试ab时测试应返回FALSE (请参见下文),而测试cd时测试应返回TRUE (请参见下文)。

a = 5:10
b = 10:5
c = seq(-5, 15)
d = seq(-15, -8)

为了清楚起见,我要问任意两个向量 (当都排序但不考虑它们的长度时)是否在减小 (例如10:0 100:97-8:-10 ),则测试应返回TRUE,否则返回两个向量都再次增加,测试应返回TRUE,否则应返回FALSE。

“两个向量都增加”将是

all(diff(x)>0) && all(diff(y)>0)

“两个向量都减小”将是

all(diff(x)<0) && all(diff(y)<0)

您可以将它们与||结合使用 (要么)。

根据@parvin的说法,“增加”的定义只是“具有增加的趋势”。 因此,我建议不要使用diff ,而要使用lm

说我有两个数值向量xy ,这是我的解决方案:

unname(!xor(lm(x ~ seq_along(x))$coefficient[2] > 0, lm(y ~ seq_along(y))$coefficient[2] > 0))

xor完全满足了需求,因此我们可以摆脱使用|组合两个语句的麻烦| || unname用于简单地删除系数名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM