以下紀錄在做cor-test時對於參數use的用法差別。
cor函數的對象變數包含遺漏值時,use是用來告訴cor該怎麼處理遺漏值。
假如資料已經做過一些預處理,像是去掉NA值或是將NA值轉換等等,這樣有沒有use這個參數都沒甚麼關係了。
use有以下參數:

set.seed(1234)
test <- cbind(v1 = sample(1:1000,5)/1000,
              v2 = sample(1:1000,5)/1000,
              v3 = c(NA,NA,sample(1:1000,3)/1000))
test
##         v1    v2    v3
## [1,] 0.114 0.641    NA
## [2,] 0.622 0.010    NA
## [3,] 0.609 0.233 0.694
## [4,] 0.999 0.665 0.545
## [5,] 0.858 0.513 0.283
cor(test)
##            v1         v2 v3
## v1 1.00000000 0.01356592 NA
## v2 0.01356592 1.00000000 NA
## v3         NA         NA  1
cor(test,use="complete.obs")
##            v1         v2         v3
## v1  1.0000000  0.9999407 -0.5009671
## v2  0.9999407  1.0000000 -0.5103595
## v3 -0.5009671 -0.5103595  1.0000000
cor(test,use="pairwise.complete.obs")
##             v1          v2         v3
## v1  1.00000000  0.01356592 -0.5009671
## v2  0.01356592  1.00000000 -0.5103595
## v3 -0.50096709 -0.51035948  1.0000000
cor(test[3:5,],use="complete.obs")
##            v1         v2         v3
## v1  1.0000000  0.9999407 -0.5009671
## v2  0.9999407  1.0000000 -0.5103595
## v3 -0.5009671 -0.5103595  1.0000000

透過cor(test[3:5,],use="complete.obs")可以看到complete.obs是把有NA的整列剔除後再計算相關性,所以如果要充分運用資料,盡量使用pairwise.complete.obs,當然能在資料預處理的時候先將NA值做最符合實際情況的處理當然是最好囉!