[英]How to calculate the percentage of the times that the two vectors are increasing or decreasing together
[英]Testing whether two vectors are increasing or decreasing in R
我想知道在基數R中是否有一種方法可以測試兩個向量(兩者)是增加還是減少?
例如,測試a
和b
時測試應返回FALSE
(請參見下文),而測試c
和d
時測試應返回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
。
說我有兩個數值向量x
和y
,這是我的解決方案:
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.