我想在R中创建并绘制一个相关矩阵。
我有三个向量,可从中创建一个dataFrame。 在2D-XY-Coordiante系统中,矢量“索引”将位于x轴上。 然后我有两个变量“ var1”和“ var2”(y值),每个具有相同矢量索引的值都属于相同的索引(x)值。
由于无法正确准备数据,我试图绘制一个相关矩阵而失败。
如何准备以下相关图的数据?
var2
900 800 700 600 500 400 300 200
900
800
700
600 filled with pairwise corrleation coefficients
var1 500
400
300
200
这是我到目前为止尝试过的:
var1 <- c(10,20,3,1,10,4,21,2)
var2 <- c(1,44,1,19,19,29,1,3)
index <- c(200,300,400,500,600,700,800,900)
df <- data.frame(id = index, y1 = var1, y2=var2)
M <- cor(df)
install.packages("corrplot")
library('corrplot')
corrplot(M, method = "circle")
非常感谢您!
答案 0 :(得分:1)
希望这就是您想要的。
library(tidyr)
library(corrplot)
(df_wide <- df %>%
gather(y, y_value, -id) %>%
spread(id, y_value))
# y 200 300 400 500 600 700 800 900
#1 y1 10 20 3 1 10 4 21 2
#2 y2 1 44 1 19 19 29 1 3
计算相关性并绘制图。
(M <- cor(df_wide[-1]))
# 200 300 400 500 600 700 800 900
#200 1 -1 1 -1 -1 -1 1 -1
#300 -1 1 -1 1 1 1 -1 1
#400 1 -1 1 -1 -1 -1 1 -1
#500 -1 1 -1 1 1 1 -1 1
#600 -1 1 -1 1 1 1 -1 1
#700 -1 1 -1 1 1 1 -1 1
#800 1 -1 1 -1 -1 -1 1 -1
#900 -1 1 -1 1 1 1 -1 1
corrplot(M, method = "circle")