在R中绘制相关矩阵

在R中绘制相关矩阵,r,matrix,plot,correlation,R,Matrix,Plot,Correlation,我在R方面没有太多的知识。我有一个带有相关矩阵的.txt文件,它以前是从长记录创建的 文件中的文本如下所示: "15075060" "15085030" "15085040" "15075060" 1 0.441716695007761 0.433807683928689 "15085030" 0.441716695007761 1 0.477591938543259 "15085040" 0.433807683928689 0.477591938543259 1 这是一个典型的例子,因为实矩

我在R方面没有太多的知识。我有一个带有相关矩阵的.txt文件,它以前是从长记录创建的

文件中的文本如下所示:

"15075060" "15085030" "15085040"
"15075060" 1 0.441716695007761 0.433807683928689
"15085030" 0.441716695007761 1 0.477591938543259
"15085040" 0.433807683928689 0.477591938543259 1
这是一个典型的例子,因为实矩阵要大得多。引号中的数字是相关的来源。 我使用read.table读取数据以创建数据帧,然后将其转换为矩阵(称为matto),其中包括:

我得到了这样一个矩阵:

>mattox
          [,1]      [,2]      [,3]
[1,] 1.0000000 0.4417167 0.4338077
[2,] 0.4417167 1.0000000 0.4775919
[3,] 0.4338077 0.4775919 1.0000000
> matto
         X.15075060 X.15085030 X.15085040
15075060  1.0000000  0.4417167  0.4338077
15085030  0.4417167  1.0000000  0.4775919
15085040  0.4338077  0.4775919  1.0000000
作为选项2,如果我使用以下方法将其转换为矩阵:

as.matrix(sapply(matto, as.numeric))
然后我得到如下矩阵:

>mattox
          [,1]      [,2]      [,3]
[1,] 1.0000000 0.4417167 0.4338077
[2,] 0.4417167 1.0000000 0.4775919
[3,] 0.4338077 0.4775919 1.0000000
> matto
         X.15075060 X.15085030 X.15085040
15075060  1.0000000  0.4417167  0.4338077
15085030  0.4417167  1.0000000  0.4775919
15085040  0.4338077  0.4775919  1.0000000
虽然我不知道为什么我会在列标题的数字之前得到X

当我尝试使用函数corrplot绘制这种相关性时,我得到了矩阵mattox的类似结果:

corrplot(mattox, type="upper")
但问题是,我在这里看不到列和行的标题名(在.txt文件中用引号括起来的数字)。对于另一个矩阵(matto),当我尝试使用corrplot时,我得到一个错误,错误是:

Error in matrix(if (is.null(value)) logical() else value, nrow = nr, dimnames = list(rn,  : 
  length of 'dimnames' [2] not equal to array extent
我想得到一个图形,就像我得到的一样,但是有列和行的名称,而不是数字1,2,3。。。 类似于下一张图表,我在网上找到了其他案例:


如何修复此问题?

您可以跳过这些步骤,在读取时将其强制为矩阵,并且应该已经是数字了。由于这些原因,它在名称前面加上一个
x
。您可以指定
colnames

df <- as.matrix(read.table("location/of/text.txt", row.names = 1))
colnames(df) <- c("15075060", "15085030", "15085040")

str(df) # check the structure, it's numeric so we're good
num [1:3, 1:3] 1 0.442 0.434 0.442 1 ...
- attr(*, "dimnames")=List of 2
 ..$ : chr [1:3] "15075060" "15085030" "15085040"
 ..$ : chr [1:3] "15075060" "15085030" "15085040"

corrplot(df, type = "upper")

df Thanx@Anonymous coward!只有一个问题,因为我写的实矩阵非常大,所以不能自己创建向量c()。如何在读取.txt文件时自动创建它?在这种情况下,只需添加一行:
colnames(df)