Error using corrplot

匿名 (未验证) 提交于 2019-12-03 03:06:01

问题:

I need help with interpreting an error message using corrplot.

Here is my script

install.packages("ggplot2") install.packages("corrplot") install.packages("xlsx")  library(ggplot2) library(corrplot) library(xlsx)  #set working dir setwd("C:/R") #read xlsx data into R df <- read.xlsx("TP_diff_frame.xlsx",1) #set column as index rownames(df) <- df$country #remove column df2<-subset(df, select = -c(country) ) #round values to to decimals   corrplot(df2, method="shade",shade.col=NA, tl.col="black", tl.srt=45) 

My df2:

> df2                      a    b     c     d     e    f    g Sweden            0.09 0.19  0.00 -0.25 -0.04 0.01 0.00 Germany           0.11 0.19  0.01 -0.35  0.01 0.02 0.01 UnitedKingdom     0.14 0.21  0.03 -0.32 -0.05 0.00 0.00 RussianFederation 0.30 0.26 -0.07 -0.41 -0.09 0.00 0.00 Netherlands       0.09 0.16 -0.05 -0.26  0.02 0.02 0.01 Belgium           0.12 0.20  0.01 -0.34  0.01 0.00 0.00 Italy             0.14 0.22  0.01 -0.37  0.00 0.00 0.00 France            0.14 0.24 -0.04 -0.34  0.00 0.00 0.00 Finland           0.16 0.17  0.01 -0.26 -0.08 0.00 0.00 Norway            0.15 0.21  0.10 -0.37 -0.09 0.00 0.00 

error message:

> corrplot(df2, method="shade",shade.col=NA, tl.col="black", tl.srt=45) Error in matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr,  :    length of 'dimnames' [2] not equal to array extent 

回答1:

I think the problem is that you are plotting the data frame instead of the correlation matrix. Try to change the last line to this:

corrplot(cor(df2), method="shade",shade.col=NA, tl.col="black", tl.srt=45) 

The function cor calculates the correlation matrix, which is what you need to plot



回答2:

Another option is to break it up into two lines of code.

df2 <- cor(df, use = "na.or.complete") corrplot(df2, method="shade",shade.col=NA, tl.col="black", tl.srt=45) 

I'd run a simple corrplot (e.g. corrplot.mixed(df2)) make sure it works, then get into the fine tuning and aesthetics.



回答3:

In order to use the corrplot package for heatmap plots you should pass your data.frame to a matrix and also use the is.corr argument.

df2 <- as.matrix(df2)  corrplot(df2, is.corr=FALSE) 


文章来源: Error using corrplot
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!