14

corrplot を使用したエラー メッセージの解釈についてサポートが必要です。

これが私のスクリプトです

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)

私の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

そしてエラーメッセージ:

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

行列のエラー (unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr, : 'dimnames' の長さ [2] が配列の範囲と等しくない

4

3 に答える 3

37

問題は、相関行列ではなくデータ フレームをプロットしていることだと思います。最後の行を次のように変更してみてください。

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

関数 cor は、プロットに必要な相関行列を計算します

于 2014-01-15T15:42:46.990 に答える
3

もう 1 つのオプションは、コードを 2 行に分割することです。

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

簡単なcorrplot(corrplot.mixed(df2)など)を実行して、それが機能することを確認してから、微調整と美学に取り掛かります。

于 2014-06-01T17:19:05.170 に答える