@CathG指出,最簡單的解決方案是:
cor(b, a) # Using the dataset below
的以下解決方案並不像Cath所建議的那樣短,但是它們具有更大的靈活性,因此具有價值。
可替換地,我會使用apply
和cor
以下列方式組合:
a = data.frame(matrix(runif(12*68), 12, 68))
b = runif(12)
cor_results = apply(a, 2, cor, y = b)
X1 X2 X3 X4 X5 X6
0.31350412 -0.05467418 -0.30931157 0.14405810 -0.02345752 -0.12373525
X7 X8 X9 X10 X11 X12
0.01908565 -0.22919558 0.39268615 0.32430387 0.35093708 -0.22047010
X13 X14 X15 X16 X17 X18
-0.39814052 -0.02533794 -0.03198359 0.58317791 -0.28128437 0.19024528
X19 X20 X21 X22 X23 X24
-0.07923733 0.19769458 0.15992906 -0.11981105 0.26952069 0.21392988
X25 X26 X27 X28 X29 X30
-0.40203609 -0.09928433 -0.10153816 0.04975818 -0.17193521 0.26193832
X31 X32 X33 X34 X35 X36
0.11082240 -0.26369909 0.37432923 -0.36222913 -0.19496623 0.37251599
X37 X38 X39 X40 X41 X42
-0.27698393 0.26546843 0.13865907 -0.05896102 0.38421875 0.40201066
X43 X44 X45 X46 X47 X48
-0.07955439 -0.23950890 0.20039167 -0.07278757 0.17397793 -0.34845780
X49 X50 X51 X52 X53 X54
-0.13418043 -0.09117669 0.50658960 -0.01355937 -0.19616894 0.67096919
X55 X56 X57 X58 X59 X60
0.07128920 -0.30915734 -0.26373001 -0.20921997 -0.55908983 -0.27541652
X61 X62 X63 X64 X65 X66
0.30810248 0.06467311 -0.15531110 -0.02854304 -0.10019493 -0.23069442
X67 X68
-0.63667406 -0.15019676
其中在調用apply
的2
意味着我們應用函數到每一列。一點點短是使用sapply
(在列迭代缺省):
sapply(a, cor, y = b) # Leads to the exact same result as above
用,它並不能概括的a
任何尺寸的缺點。
甚至冷卻器,使用dplyr
:
a %>% summarise_each(funs(cor(x = ., y = b)))
這是否DO:'sapply(B,COR,Y = A [[1]])'? – jogo
嘗試'cor(A,B,method =「spearman」)' – Cath
>方法> cor(A,B,method =「s」),結果爲68。這個問題,我不是爲什麼,是因爲這個值與STATISTICA 6.0等其他軟件的分析行爲不同。 ? – Diego