R
には変数data.frame
があります。我々はそれをどのように行うことができますデータフレームの複数の変数間の相関
var10
...私は
var2
に関して
var1
の一つ、
var3
の相関関係を見つけたい...
var1
var2
var10
それらをすることができますを呼びますか?
cor
関数は、一度に2つの変数間の相関を見つけることができます。これを使用することで、各分析のためにcor
関数を書く必要がありました。
R
には変数data.frame
があります。我々はそれをどのように行うことができますデータフレームの複数の変数間の相関
var10
...私は
var2
に関して
var1
の一つ、
var3
の相関関係を見つけたい...
var1
var2
var10
それらをすることができますを呼びますか?
cor
関数は、一度に2つの変数間の相関を見つけることができます。これを使用することで、各分析のためにcor
関数を書く必要がありました。
私のパッケージcorrr
は、相関関係を調べるのに役立ちます。私は例としてmtcarsデータセットを使用し、mpg
と他のすべての変数との相関に焦点を当てたいとします。ここで
install.packages("corrr") # though keep eye out for new version coming soon
library(corrr)
mtcars %>% correlate() %>% focus(mpg)
#> rowname mpg
#> <chr> <dbl>
#> 1 cyl -0.8521620
#> 2 disp -0.8475514
#> 3 hp -0.7761684
#> 4 drat 0.6811719
#> 5 wt -0.8676594
#> 6 qsec 0.4186840
#> 7 vs 0.6640389
#> 8 am 0.5998324
#> 9 gear 0.4802848
#> 10 carb -0.5509251
、correlate()
は、相関データフレームを生成し、focus()
は、あなたが他のすべてと特定の変数の相関関係に焦点を当てることができます。
FYI、focus()
は、dplyr
パッケージのselect()
と同様に動作しますが、行と列が変更されます。したがって、select()
に精通している場合は、focus()
を使いやすくする必要があります。例:
mtcars %>% correlate() %>% focus(mpg:drat)
#> rowname mpg cyl disp hp drat
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 wt -0.8676594 0.7824958 0.8879799 0.6587479 -0.71244065
#> 2 qsec 0.4186840 -0.5912421 -0.4336979 -0.7082234 0.09120476
#> 3 vs 0.6640389 -0.8108118 -0.7104159 -0.7230967 0.44027846
#> 4 am 0.5998324 -0.5226070 -0.5912270 -0.2432043 0.71271113
#> 5 gear 0.4802848 -0.4926866 -0.5555692 -0.1257043 0.69961013
#> 6 carb -0.5509251 0.5269883 0.3949769 0.7498125 -0.09078980
もう一つの方法は、すべてのペア、意義などのようなきれいなプロット間の相関関係を得るためのライブラリHmiscとcorrplotを使用することです:
#Your data frame (4 variables instead of 10)
df<-data.frame(a=c(1:100),b=rpois(1:100,.2),c=rpois(1:100,.4),d=rpois(1:100,.8),e=2*c(1:100))
#setup
library(Hmisc)
library(corrplot)
df<-scale(df)# normalize the data frame. This will also convert the df to a matrix.
corr<-rcorr(df) # compute Pearson's (or spearman's corr) with rcorr from Hmisc package. I like rcorr as it allows to separately access the correlations, the # or observations and the p-value. ?rcorr is worth a read.
corr_r<-as.matrix(corr[[1]])# Access the correlation matrix.
corr_r[,1]# subset the correlation of "a" (=var1) with the rest if you want.
pval<-as.matrix(corr[[3]])# get the p-values
corrplot(corr_r,method="circle",type="lower",diag=FALSE,tl.col="black",tl.cex=1,tl.offset=0.1,tl.srt=45)# plot all pairs
corrplot(corr_r,p.mat = pval,sig.level=0.05,insig = "blank",method="circle",type="lower",diag=FALSE,tl.col="black",tl.cex=1,tl.offset=0.1,tl.srt=45)# plot pairs with significance cutoff defined by "p.mat"
あなたが適用ステートメントを使用することができます '適用されます(iris [、2:4]、2、function(x)cor(x、iris $ Sepal.Length)) ' –
' cor(data.frame) 'を使うと、すべての変数間の相関行列を得ることができます。この行列から関連する行/列を抽出するだけです。 – Sumedh
'cor(dat $ var1、dat [c(" var2 "、" var3 "、" var4 ")])'したがって、Philipの例を使用して、 'cor(iris $ Sepal.Length、iris [2:4])' – user20650