我有一个SummarizedExperiment
,看起来像这样:
class: RangedSummarizedExperiment
dim: 483731 485
metadata(4): creationDate author BBMRIomicsVersion note
assays(1): data
rownames(483731): cg01707559 cg02004872 ... ch.22.47579720R ch.22.48274842R
rowData names(10): addressA addressB ... probeEnd probeTarget
colnames(485): 200397860027_R01C01 200397860027_R02C02 ... 200556930046_R03C01 200556930046_R06C02
colData names(946): STUDY_NUMBER SampleID ... Basename ID
我有一个看起来像这样的数据框:
STUDY_NUMBER UPID Testosterone Estradiol SHBG Sex
1 UPID01 NA NA NA male
3 UPID02 NA NA NA male
3 UPID03 10.02 62 49.6 male
4 UPID04 NA NA NA male
5 UPID05 NA NA NA female
我想基于STUDY_NUMBER
合并此表(n行= 3662)。因此,我使用了以下代码:
colData(aems450k1.MvaluesQCIMPplaqueSE) <- merge(colData(aems450k1.MvaluesQCIMPplaqueSE), AEDB_Q1_20180223_sex,
by.x = "STUDY_NUMBER", by.y = "STUDY_NUMBER", all.x = TRUE)
这将导致以下SummarizedExperiment
对象:
class: RangedSummarizedExperiment
dim: 483731 485
metadata(4): creationDate author BBMRIomicsVersion note
assays(1): data
rownames(483731): cg01707559 cg02004872 ... ch.22.47579720R ch.22.48274842R
rowData names(10): addressA addressB ... probeEnd probeTarget
colnames: NULL
colData names(952): STUDY_NUMBER SampleID ... Sex T_E2
您将注意到colnames
现在为NULL。因此,我的问题是:
如何防止这种情况发生?
我的第二个问题:
是否会发生这种情况,因为两个数据帧的顺序(基于STUDY_NUMBER
)不相同?
非常感谢,
桑德
答案 0 :(得分:0)
我相信我找到了答案,另请参见:https://support.bioconductor.org/p/114113/#114117。
我认为问题在于colData
与Assay
数据的顺序不同,这不应该发生。但是,如果我sort =
到merge命令,一切都很好,以后可以添加名称。所以:
dim(aems450k1.MvaluesQCIMPplaqueSE)
aems450k1.MvaluesQCIMPplaqueSE
colData(aems450k1.MvaluesQCIMPplaqueSE) <- merge(colData(aems450k1.MvaluesQCIMPplaqueSE), AEDB_Q1_20180223_sex, by = "STUDY_NUMBER", sort = FALSE)
colnames(aems450k1.MvaluesQCIMPplaqueSE) <- aems450k1.MvaluesQCIMPplaqueSE$ID
dim(aems450k1.MvaluesQCIMPplaqueSE)
结果为:
class: RangedSummarizedExperiment
dim: 483731 485
metadata(4): creationDate author BBMRIomicsVersion note
assays(1): data
rownames(483731): cg01707559 cg02004872 ... ch.22.47579720R ch.22.48274842R
rowData names(10): addressA addressB ... probeEnd probeTarget
colnames(485): 8918692001_R01C01 8918692001_R02C01 ... 9221198166_R06C01 9221198166_R06C02
colData names(946): STUDY_NUMBER SampleID ... Basename ID
colnames
中哪个顺序正确。没有sort =
时,别名的顺序类似于colnames(485): 9221198166_R06C02 9221198166_R06C01 ... 8918692001_R02C01 8918692001_R01C01
。
这有意义吗?