我正在尝试制作一个类似于相关图的图。然而,我的数据是长格式的,我只想显示矩阵的下三角形。因此,我获取了我的数据,并使用以下内容对其进行了重塑:
x<-c('A','B','C')
data<-expand.grid(x,x)
data$value<-c(1,2,3,2,1,4,3,4,1)
r.data<-reshape(data, idvar = "Var1", timevar = "Var2", direction = "wide")
colnames(r.data)<-c('Var','A','B','C')
rownames(r.data)<-r.data$Var
r.data$Var<-NULL
接下来,我找到了数据的下三角形部分:
get_lower_tri<-function(cormat){
cormat[upper.tri(cormat)] <- NA
return(cormat)
}
r.data_lower<-get_lower_tri(r.data)
但是当我使用melt()
时,我现在只有一个变量和值的列,因为没有id。我如何定义一个id变量,或者修复一些东西,使其成为标准的熔化格式?
期望值:
Var1 Var2 value
A A 1
B A 2
B B 1
C A 3
C B 4
C C 1
发布于 2019-06-17 15:56:38
一个选项是先转换为matrix
,然后使用na.rm = TRUE
选项转换为melt
library(reshape2)
melt(as.matrix(r.data_lower), na.rm = TRUE)
https://stackoverflow.com/questions/56634705
复制相似问题