相關運算我需要計算基於兩個條件我的數據集的相關性。下面是一個例子:R:基於兩個條件
df1 <- data.frame(
Main = c(0.0089, -0.050667, -0.030379, 0.066484, 0.006439, -0.026076),
B = c(NA, 0.0345, -0.0683, -0.052774, 0.014661, -0.040537),
C = c(0.0181, 0, -0.056197, 0.040794, 0.03516, -0.022662),
D = c(-0.0127, -0.025995, -0.04293, 0.057816, 0.033458, -0.058382)
)
df1
# Main B C D
# 1 0.008900 NA 0.018100 -0.012700
# 2 -0.050667 0.034500 0.000000 -0.025995
# 3 -0.030379 -0.068300 -0.056197 -0.042930
# 4 0.066484 -0.052774 0.040794 0.057816
# 5 0.006439 0.014661 0.035160 0.033458
# 6 -0.026076 -0.040537 -0.022662 -0.058382
我想Main
和每一列之間的相關性1)Main<0
和2)1)滿足時的時候,列B
,C
或D
不等於0
。在這個例子中,用於主和B,行#2,3 & 6(DF1)適合的規則;對於Main和C,行#3 & 6合適;用於主和d,行#2,3 & 6配合。
在Excel中,這可以通過使用兩個if
函數來完成。例如,計算Main
和B
之間的負相關關係,我可以用{=CORREL(IF(A1:A6<0, A1:A6), IF(A1:A6<0, IF(B1:B6<>0, B1:B6)))}
我的實際數據集有近20列這樣和將隨着時間而改變。我非常確定R可以做到這一點,但我一直堅持這個問題幾個小時。任何建議將被認真考慮。
你要什麼用'NA'做了什麼? – MichaelChirico
@MichaelChirico我想刪除NAs。 –
然後下面的代碼,甚至更好,因爲'[.data.table'自動排除從子集'NA'元件。 – MichaelChirico