首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R中长到宽、长到长的格式有困难

R中长到宽、长到长的格式有困难
EN

Stack Overflow用户
提问于 2019-06-17 15:42:28
回答 1查看 20关注 0票数 1

我正在尝试制作一个类似于相关图的图。然而,我的数据是长格式的,我只想显示矩阵的下三角形。因此,我获取了我的数据,并使用以下内容对其进行了重塑:

代码语言:javascript
运行
AI代码解释
复制
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

接下来,我找到了数据的下三角形部分:

代码语言:javascript
运行
AI代码解释
复制
get_lower_tri<-function(cormat){
  cormat[upper.tri(cormat)] <- NA
  return(cormat)
}
r.data_lower<-get_lower_tri(r.data)

但是当我使用melt()时,我现在只有一个变量和值的列,因为没有id。我如何定义一个id变量,或者修复一些东西,使其成为标准的熔化格式?

期望值:

代码语言:javascript
运行
AI代码解释
复制
Var1  Var2   value
 A     A       1
 B     A       2
 B     B       1
 C     A       3
 C     B       4
 C     C       1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-17 15:56:38

一个选项是先转换为matrix,然后使用na.rm = TRUE选项转换为melt

代码语言:javascript
运行
AI代码解释
复制
library(reshape2)
melt(as.matrix(r.data_lower), na.rm = TRUE)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56634705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档