R data.table 融合多个测量变量

问题描述 投票:0回答:1

我想在融化的 data.table 中添加一个额外的列

samples
,它将作为原始 data.table 中的列
D-0-1, D-0-2, D-A-1, D-A-2, D-A-3
的键。 所以最终融化的数据将有以下几列
chrom      pos strand samples measure value
。 你能帮忙吗?

这是我正在使用的代码

# Create a melted version for AVG, MED and samples
melted_AVG_MED <- melt(consensus_hiQ_CpGs, id.vars = c("chrom", "pos", "strand"), 
                       measure.vars = c("AVG", "MED"), 
                       variable.name = "measure", value.name = "value")

请查看样本数据

structure(list(chrom = c("chr16", "chr9", "chr2", "chr2", "chr2", 
"chr5", "chr4", "chr8", "chr7", "chr19"), pos = c(45610432L, 
114912823L, 120609324L, 180012622L, 76370138L, 18336978L, 23044573L, 
88382377L, 89749892L, 55697045L), strand = c("+", "-", "-", "-", 
"-", "-", "-", "-", "+", "-"), `D-0-1` = c(17L, 27L, 20L, 15L, 
23L, 12L, 23L, 17L, 23L, 26L), `D-0-2` = c(8L, 9L, 7L, 11L, 9L, 
9L, 10L, 5L, 6L, 11L), `D-A-1` = c(16L, 23L, 21L, 12L, 17L, 19L, 
18L, 17L, 17L, 16L), `D-A-2` = c(14L, 23L, 23L, 9L, 21L, 4L, 
14L, 20L, 22L, 14L), `D-A-3` = c(11L, 17L, 20L, 17L, 10L, 14L, 
13L, 16L, 10L, 17L), MIN = c(8L, 9L, 7L, 9L, 9L, 4L, 10L, 5L, 
6L, 11L), SUM = c(66, 99, 91, 64, 80, 58, 78, 75, 78, 84), AVG = c(13.2, 
19.8, 18.2, 12.8, 16, 11.6, 15.6, 15, 15.6, 16.8), MED = c(14, 
23, 20, 12, 17, 12, 14, 17, 17, 16)), row.names = c(NA, -10L), class = c("data.table", 
"data.frame"), .internal.selfref = <pointer: 0x1def820>)
r data.table melt
1个回答
0
投票

也许这会有所帮助:

library(data.table)

dt_measures <- melt(dt, id.vars = c("chrom", "pos", "strand"), 
                    measure.vars = c("AVG", "MED"), 
                    variable.name = "measure", value.name = "value_measure")

dt_samples <- melt(dt, id.vars = c("chrom", "pos", "strand"), 
                   measure.vars = c("D-0-1", "D-0-2", "D-A-1", "D-A-2", "D-A-3"), 
                   variable.name = "samples", value.name = "value_samples")

dt_samples[dt_measures, on = .(chrom, pos, strand), allow.cartesian = TRUE]

   chrom       pos strand samples value_samples measure value_measure
  1: chr16  45610432      +   D-0-1            17     AVG          13.2
  2: chr16  45610432      +   D-0-2             8     AVG          13.2
  3: chr16  45610432      +   D-A-1            16     AVG          13.2
  4: chr16  45610432      +   D-A-2            14     AVG          13.2
  5: chr16  45610432      +   D-A-3            11     AVG          13.2
  6:  chr9 114912823      -   D-0-1            27     AVG          19.8
  7:  chr9 114912823      -   D-0-2             9     AVG          19.8
  8:  chr9 114912823      -   D-A-1            23     AVG          19.8
  9:  chr9 114912823      -   D-A-2            23     AVG          19.8
 10:  chr9 114912823      -   D-A-3            17     AVG          19.8
 11:  chr2 120609324      -   D-0-1            20     AVG          18.2
 12:  chr2 120609324      -   D-0-2             7     AVG          18.2
 13:  chr2 120609324      -   D-A-1            21     AVG          18.2
 14:  chr2 120609324      -   D-A-2            23     AVG          18.2
 15:  chr2 120609324      -   D-A-3            20     AVG          18.2
 16:  chr2 180012622      -   D-0-1            15     AVG          12.8
 17:  chr2 180012622      -   D-0-2            11     AVG          12.8
 18:  chr2 180012622      -   D-A-1            12     AVG          12.8
 19:  chr2 180012622      -   D-A-2             9     AVG          12.8
 20:  chr2 180012622      -   D-A-3            17     AVG          12.8
 21:  chr2  76370138      -   D-0-1            23     AVG          16.0
 22:  chr2  76370138      -   D-0-2             9     AVG          16.0
 23:  chr2  76370138      -   D-A-1            17     AVG          16.0
 24:  chr2  76370138      -   D-A-2            21     AVG          16.0
 25:  chr2  76370138      -   D-A-3            10     AVG          16.0
 26:  chr5  18336978      -   D-0-1            12     AVG          11.6
 27:  chr5  18336978      -   D-0-2             9     AVG          11.6
 28:  chr5  18336978      -   D-A-1            19     AVG          11.6
 29:  chr5  18336978      -   D-A-2             4     AVG          11.6
 30:  chr5  18336978      -   D-A-3            14     AVG          11.6
 31:  chr4  23044573      -   D-0-1            23     AVG          15.6
 32:  chr4  23044573      -   D-0-2            10     AVG          15.6
 33:  chr4  23044573      -   D-A-1            18     AVG          15.6
 34:  chr4  23044573      -   D-A-2            14     AVG          15.6
 35:  chr4  23044573      -   D-A-3            13     AVG          15.6
 36:  chr8  88382377      -   D-0-1            17     AVG          15.0
 37:  chr8  88382377      -   D-0-2             5     AVG          15.0
 38:  chr8  88382377      -   D-A-1            17     AVG          15.0
 39:  chr8  88382377      -   D-A-2            20     AVG          15.0
 40:  chr8  88382377      -   D-A-3            16     AVG          15.0
 41:  chr7  89749892      +   D-0-1            23     AVG          15.6
 42:  chr7  89749892      +   D-0-2             6     AVG          15.6
 43:  chr7  89749892      +   D-A-1            17     AVG          15.6
 44:  chr7  89749892      +   D-A-2            22     AVG          15.6
 45:  chr7  89749892      +   D-A-3            10     AVG          15.6
 46: chr19  55697045      -   D-0-1            26     AVG          16.8
 47: chr19  55697045      -   D-0-2            11     AVG          16.8
 48: chr19  55697045      -   D-A-1            16     AVG          16.8
 49: chr19  55697045      -   D-A-2            14     AVG          16.8
 50: chr19  55697045      -   D-A-3            17     AVG          16.8
 51: chr16  45610432      +   D-0-1            17     MED          14.0
 52: chr16  45610432      +   D-0-2             8     MED          14.0
 53: chr16  45610432      +   D-A-1            16     MED          14.0
 54: chr16  45610432      +   D-A-2            14     MED          14.0
 55: chr16  45610432      +   D-A-3            11     MED          14.0
 56:  chr9 114912823      -   D-0-1            27     MED          23.0
 57:  chr9 114912823      -   D-0-2             9     MED          23.0
 58:  chr9 114912823      -   D-A-1            23     MED          23.0
 59:  chr9 114912823      -   D-A-2            23     MED          23.0
 60:  chr9 114912823      -   D-A-3            17     MED          23.0
 61:  chr2 120609324      -   D-0-1            20     MED          20.0
 62:  chr2 120609324      -   D-0-2             7     MED          20.0
 63:  chr2 120609324      -   D-A-1            21     MED          20.0
 64:  chr2 120609324      -   D-A-2            23     MED          20.0
 65:  chr2 120609324      -   D-A-3            20     MED          20.0
 66:  chr2 180012622      -   D-0-1            15     MED          12.0
 67:  chr2 180012622      -   D-0-2            11     MED          12.0
 68:  chr2 180012622      -   D-A-1            12     MED          12.0
 69:  chr2 180012622      -   D-A-2             9     MED          12.0
 70:  chr2 180012622      -   D-A-3            17     MED          12.0
 71:  chr2  76370138      -   D-0-1            23     MED          17.0
 72:  chr2  76370138      -   D-0-2             9     MED          17.0
 73:  chr2  76370138      -   D-A-1            17     MED          17.0
 74:  chr2  76370138      -   D-A-2            21     MED          17.0
 75:  chr2  76370138      -   D-A-3            10     MED          17.0
 76:  chr5  18336978      -   D-0-1            12     MED          12.0
 77:  chr5  18336978      -   D-0-2             9     MED          12.0
 78:  chr5  18336978      -   D-A-1            19     MED          12.0
 79:  chr5  18336978      -   D-A-2             4     MED          12.0
 80:  chr5  18336978      -   D-A-3            14     MED          12.0
 81:  chr4  23044573      -   D-0-1            23     MED          14.0
 82:  chr4  23044573      -   D-0-2            10     MED          14.0
 83:  chr4  23044573      -   D-A-1            18     MED          14.0
 84:  chr4  23044573      -   D-A-2            14     MED          14.0
 85:  chr4  23044573      -   D-A-3            13     MED          14.0
 86:  chr8  88382377      -   D-0-1            17     MED          17.0
 87:  chr8  88382377      -   D-0-2             5     MED          17.0
 88:  chr8  88382377      -   D-A-1            17     MED          17.0
 89:  chr8  88382377      -   D-A-2            20     MED          17.0
 90:  chr8  88382377      -   D-A-3            16     MED          17.0
 91:  chr7  89749892      +   D-0-1            23     MED          17.0
 92:  chr7  89749892      +   D-0-2             6     MED          17.0
 93:  chr7  89749892      +   D-A-1            17     MED          17.0
 94:  chr7  89749892      +   D-A-2            22     MED          17.0
 95:  chr7  89749892      +   D-A-3            10     MED          17.0
 96: chr19  55697045      -   D-0-1            26     MED          16.0
 97: chr19  55697045      -   D-0-2            11     MED          16.0
 98: chr19  55697045      -   D-A-1            16     MED          16.0
 99: chr19  55697045      -   D-A-2            14     MED          16.0
100: chr19  55697045      -   D-A-3            17     MED          16.0
     chrom       pos strand samples value_samples measure value_measure

© www.soinside.com 2019 - 2024. All rights reserved.