2012-09-19 35 views
3

我是R的初學者。我已經學會了如何檢查數值數據之間的相關性。檢查數值和布爾值之間的相關性R

但是我找不到有關如何檢查數字和布爾類型數據之間的相關性的細節。任何人都可以給我提示或引導我。

在此先感謝!

回答

2

這回答了你的問題:

##x is logical, i.e. TRUE or FALSE 
R> x = sample(c(T, F), 10, replace=10) 
##y is numeric 
R> y = runif(10) 

##When we use correlation 
##R converts TRUE to 1 and FALSE to 0. 
R> cor(x, y) 
[1] -0.5514 

最明顯的問題是你應該做這個?請記住,相關性測試x和y之間的線性關係,即,x以線性方式增加y變化。這不會發生在您的方案中。正如@Sven指出的answer所示,您想要使用點 - 雙列相關方法。


如果你的數據是一個字符向量,說:

x = c("M", "F") 

那麼你就需要做一個額外的步驟:

x[x=="M"] = 1 
x[x=="F"] = 1 
3

我想你正在尋找point-biserial correlation。下載包裝ltm。它包括功能biserial.cor

x <- rnorm(10) 
y <- rep(c(0,1), 5) 

library(ltm) 
biserial.cor(x,y) 
#[1] -0.08279833 

查看?biserial.cor瞭解詳情。

結果是從與所獲得的一個稍微不同的內置cor功能:

cor(x,y) 
#[1] 0.0872771