R
에 10 개의 변수 중 data.frame
이 있습니다. 그들에게 var1
var2
를 ... 전화하자 내가 var2
, var3
에 대한 var1
중 하나의 상관 관계를 발견 할데이터 프레임의 여러 변수 간의 상관 관계
var10
... var10
우리가 어떻게 할 수 있습니까?
cor
함수는 한 번에 2 개의 변수 사이의 상관 관계를 찾을 수 있습니다. 이를 사용하여 각 분석에 대해 cor
함수를 작성해야했습니다.
R
에 10 개의 변수 중 data.frame
이 있습니다. 그들에게 var1
var2
를 ... 전화하자 내가 var2
, var3
에 대한 var1
중 하나의 상관 관계를 발견 할데이터 프레임의 여러 변수 간의 상관 관계
var10
... 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"
: 를'적용 –
'cor (data.frame)'을 사용하면 모든 변수들 사이에 상관 관계의 행렬을 얻을 수있다. (예를 들어, . 이 행렬에서 관련 행/열을 추출하면됩니다. – Sumedh
'cor (dat $ var1, dat [c ("var2", "var3", "var4")])'. 그래서 Philip의 예를 사용하여, 'cor (iris $ Sepal.Length, iris [2 : 4])' – user20650