How to round correlation values in the correlation matrix to zero decimal places in R?


To find the correlation matrix, we simply need to use cor function with the data frame object name. For example, if we have a data frame named as df then the correlation matrix can be found by using cor(df). But the result will have too many decimal places to represent the correlation. If we want to avoid the values after decimal places, we can use round function.

Consider the mtcars data in base R −

Example

 Live Demo

data(mtcars)
cor(mtcars)

Output

      mpg           cyl        disp        hp         drat          wt
mpg    1.0000000  -0.8521620  -0.8475514  -0.7761684   0.68117191   -0.8676594
cyl   -0.8521620   1.0000000   0.9020329   0.8324475  -0.69993811    0.7824958
disp  -0.8475514   0.9020329   1.0000000   0.7909486  -0.71021393    0.8879799
hp    -0.7761684   0.8324475   0.7909486   1.0000000  -0.44875912    0.6587479
drat   0.6811719  -0.6999381  -0.7102139  -0.4487591   1.00000000   -0.7124406
wt    -0.8676594   0.7824958   0.8879799   0.6587479  -0.71244065    1.0000000
qsec   0.4186840  -0.5912421  -0.4336979  -0.7082234   0.09120476   -0.1747159
vs     0.6640389  -0.8108118  -0.7104159 - 0.7230967   0.44027846   -0.5549157
am     0.5998324  -0.5226070  -0.5912270  -0.2432043   0.71271113   -0.6924953
gear   0.4802848  -0.4926866  -0.5555692  -0.1257043   0.69961013   -0.5832870
carb  -0.5509251   0.5269883   0.3949769   0.7498125  -0.09078980    0.4276059
      qsec          vs          am           gear       carb
mpg    0.41868403   0.6640389   0.59983243  0.4802848 -0.55092507
cyl   -0.59124207  -0.8108118  -0.52260705 -0.4926866  0.52698829
disp  -0.43369788  -0.7104159  -0.59122704 -0.5555692  0.39497686
hp    -0.70822339  -0.7230967  -0.24320426 -0.1257043  0.74981247
drat   0.09120476   0.4402785   0.71271113  0.6996101 -0.09078980
wt    -0.17471588  -0.5549157  -0.69249526 -0.5832870  0.42760594
qsec   1.00000000   0.7445354  -0.22986086 -0.2126822 -0.65624923
vs     0.74453544   1.0000000   0.16834512  0.2060233 -0.56960714
am    -0.22986086   0.1683451   1.00000000  0.7940588  0.05753435
gear  -0.21268223   0.2060233   0.79405876  1.0000000  0.27407284
carb  -0.65624923  -0.5696071   0.05753435  0.2740728  1.00000000

Output

         qsec       vs         am gear carb
 mpg   0.41868403  0.6640389  0.59983243  0.4802848 -0.55092507
cyl   -0.59124207 -0.8108118 -0.52260705 -0.4926866  0.52698829
 disp -0.43369788 -0.7104159 -0.59122704 -0.5555692  0.39497686
 hp   -0.70822339 -0.7230967 -0.24320426 -0.1257043  0.74981247
drat   0.09120476  0.4402785  0.71271113  0.6996101 -0.09078980
wt    -0.17471588 -0.5549157 -0.69249526 -0.5832870  0.42760594
qsec   1.00000000  0.7445354 -0.22986086 -0.2126822 -0.65624923
vs     0.74453544  1.0000000  0.16834512  0.2060233 -0.56960714
am    -0.22986086  0.1683451  1.00000000  0.7940588  0.05753435
gear  -0.21268223  0.2060233  0.79405876  1.0000000  0.27407284
carb  -0.65624923 -0.5696071  0.05753435  0.2740728  1.00000000

Finding the correlation matrix with correlation coefficients rounded to zero −

Example

 Live Demo

round(cor(mtcars),0)

Output

mpg  cyl  disp  hp  drat  wt   qsec vs am  gear carb
mpg    1  -1  -1  -1    1  -1   0    1   1    0   -1
cyl   -1   1   1   1   -1   1  -1   -1  -1    0    1
disp  -1   1   1   1   -1   1   0   -1  -1   -1    0
hp    -1   1   1   1    0   1  -1   -1   0    0    1
drat   1  -1  -1   0    1  -1   0    0   1    1    0
wt    -1   1   1   1   -1   1   0   -1  -1   -1    0
qsec   0  -1   0  -1    0   0   1    1   0    0   -1
vs     1  -1  -1  -1    0  -1   1    1   0    0   -1
am     1  -1  -1   0    1  -1   0    0   1    1    0
gear   0   0  -1   0    1  -1   0    0   1    1    0
carb  -1   1   0   1    0   0  -1  -1    0    0    1

Consider the below data frame −

Example

 Live Demo

x1<-sample(rexp(5,1),20,replace=TRUE) x2<-sample(runif(5,1,2),20,replace=TRUE) x3<-sample(rnorm(4,0.95,0.04),20,replace=TRUE)
df_x<-data.frame(x1,x2,x3)
df_x

Output

x1 x2 x3
1 2.89702241 1.764443 0.9478372
2 0.89472590 1.764443 0.9850543
3 0.89472590 1.299860 0.9850543
4 0.07786123 1.377727 0.9661181
5 2.89702241 1.452261 0.9478372
6 0.22655315 1.452261 0.9850543
7 2.89702241 1.452261 0.9478372
8 2.89702241 1.764443 0.9661181
9 0.46248476 1.764443 0.9850543
10 0.22655315 1.452261 0.9731809
11 0.89472590 1.764443 0.9731809
12 0.46248476 1.764443 0.9661181
13 2.89702241 1.452261 0.9731809
14 0.07786123 1.377727 0.9661181
15 0.89472590 1.377727 0.9478372
16 0.07786123 1.180832 0.9731809
17 0.22655315 1.377727 0.9731809
18 0.22655315 1.764443 0.9478372
19 2.89702241 1.764443 0.9731809
20 0.46248476 1.452261 0.9661181

Example

cor(df_x)

Output

 x1     x2 x3
 x1 1.00000000 0.05458349 -0.2571943
 x2 0.05458349 1.00000000 -0.1760571
 x3 -0.25719426 -0.17605707 1.0000000

Example

round(cor(df_x),0)

Output

   x1 x2 x3
x1 1  0  0
x2 0  1  0
x3 0  0  1

Updated on: 14-Oct-2020

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements