将相关表排列成行[重复]

Posted

技术标签:

【中文标题】将相关表排列成行[重复]【英文标题】:arrange correlation table into rows [duplicate] 【发布时间】:2020-11-06 19:31:13 【问题描述】:

我想将关联表排列成行。

表格

 var1 var2 var3 var4
var1 1 x x x
var2 x 1 x x
var3 x x 1 x
var4 x x x 1

期望的输出

var1 var2 x
var1 var3 x
var1 var4 x
var2 var3 x
var2 var4 x
var3 var4 x

【问题讨论】:

【参考方案1】:

您可以将行名作为单独的列获取,以长格式获取数据,然后删除其中包含 1 的行。

library(magrittr)
df1 <- df %>%
        tibble::rownames_to_column('rows') %>%
        tidyr::pivot_longer(cols = -rows, names_to = 'cols') %>%
        dplyr::filter(value != 1)
df1

# A tibble: 12 x 3
#   rows  cols  value
#   <chr> <chr> <chr>
# 1 var1  var2  x    
# 2 var1  var3  x    
# 3 var1  var4  x    
# 4 var2  var1  x    
# 5 var2  var3  x    
# 6 var2  var4  x    
# 7 var3  var1  x    
# 8 var3  var2  x    
# 9 var3  var4  x    
#10 var4  var1  x    
#11 var4  var2  x    
#12 var4  var3  x  

我们可以把它写成 csv:

write.csv(df1, 'data.csv', row.names = FALSE)  

数据

df <- structure(list(var1 = c("1", "x", "x", "x"), var2 = c("x", "1", 
"x", "x"), var3 = c("x", "x", "1", "x"), var4 = c("x", "x", "x", 
"1")), class = "data.frame", row.names = c("var1", "var2", "var3","var4"))

【讨论】:

您好,感谢您帮助我。我试过你输入的代码。我给出: df %>% tibble::rownames_to_column("rows") %>% tidyr::pivot_longer(cols = -rows, : 找不到函数 "%>%" 中的错误 @Luqman 来自magrittr 包,首先运行library(magrittr)。此外,如果您有上面的矩阵,则需要先将其转换为数据帧,然后再尝试上述代码。 另外,我的数据是 617x617(行 x 列),每个都有其唯一的标签和 cor 值。我输入了 var1,2,3 和 x,x 作为例子 看起来有效。如何将此 tibble 导出为 .csv 或 .txt 格式? 查看更新的答案。

以上是关于将相关表排列成行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

集合框架相关接口概述

如何将重复的数据行排列成一行

全排列:不含重复元素和含重复元素的全排列

有重复元素的排列问题

使用 NSFetchedResultsController 按日期将 CoreData 模型排列成部分[重复]

将数据框重新排列到表格中,与“融化”相反 [重复]