美文网首页
R语言の宽矩阵转长矩阵

R语言の宽矩阵转长矩阵

作者: 麦巽生信 | 来源:发表于2020-05-08 14:10 被阅读0次

    一、长矩阵和宽矩阵

    每个变量单独成一列的为宽矩阵,例如:

        N         A        C          T          G     pos
    1 0.00044   0.21212   0.26264   0.05120   0.47360   1
    2 0.00000   0.18766   0.28970   0.32026   0.20238   2
    3 0.00000   0.19334   0.32042   0.27598   0.21026   3
    4 0.00000   0.14242   0.38242   0.32514   0.15002   4
    5 0.00000   0.33694   0.17736   0.30862   0.17708   5
    6 0.00000   0.31716   0.15932   0.14728   0.37624   6
    

    而长数据中变量的NACTG五种碱基类型并没有单独列成一列,而是整合在同一列。

        pos variable   value
    1   1        G   0.47360
    2   5        G   0.17708
    3   9        G   0.25448
    4  13        G   0.32480
    5  17        G   0.25384
    6  21        G   0.25868
    7  25        G   0.25894
    8  29        G   0.24990
    9  33        G   0.25688
    0  37        G   0.25468
    

    上面两个矩阵表达的内容相同,宽矩阵人类好读懂,长矩阵计算机方便处理,长矩阵中一列代表变量类型,另外一列表示对用的变量值。我们的ggplot对于长矩阵的画图相当方便。

    Wide- to long-format data: the melt function

    首先查看一下数据:

    head(res_per)
        N         A        C          T          G     pos
    1 0.00044   0.21212   0.26264   0.05120   0.47360   1
    2 0.00000   0.18766   0.28970   0.32026   0.20238   2
    3 0.00000   0.19334   0.32042   0.27598   0.21026   3
    4 0.00000   0.14242   0.38242   0.32514   0.15002   4
    5 0.00000   0.33694   0.17736   0.30862   0.17708   5
    6 0.00000   0.31716   0.15932   0.14728   0.37624   6
    

    使用melt进行转换

    res_per <- rbind.data.frame(gc_cont(R1),gc_cont(R2))
    res_per$pos <- 1:nrow(res_per)
    res_final <- melt(res_per,id.vars = c("pos"))
    
    
    head(res_final)
      pos variable   value
    1   1        N 0.00044
    2   2        N 0.00000
    3   3        N 0.00000
    4   4        N 0.00000
    5   5        N 0.00000
    6   6        N 0.00000
    

    之后 我们可以方便的进行绘图了~
    还有些长款矩阵的互换的参数调整,我先挖个坑 争取两三天更新此文 谢谢。

    相关文章

      网友评论

          本文标题:R语言の宽矩阵转长矩阵

          本文链接:https://www.haomeiwen.com/subject/nhdfnhtx.html