簡體   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