我正在与DESeq2一起运行数据分析,其中包括来自Broad firehose的一些肺鳞癌数据。我使用了RNAseq数据,计数数据的原始计数,我的元数据是从CNV上的Broad firehose数据生成的。这两个数据集通过TCGA in关联,每个数据集都包含匹配的in,但是原始计数数据有几个与元数据中不匹配/不存在的“额外”TCGA in。counts length = 552,meta length = 501我需要以相同的顺序获取元数据和原始计数数据,并使数据集包含匹配的TCGA ID,并删除不匹配的ID/样本。
我一直在尝试使用,match和% in %的不同方法来完成这项工作,我可以确定原始计数数据与元数据不具有相同TCGA ID的位置,但无法理解如何获取原始计数并删除与元数据中的样本不匹配的ID/样本。
任何想法都将有助于如何匹配两个数据集,并消除不匹配的行/列。
colnames(lusc_reads)
[1] "TCGA-18-3406" "TCGA-18-3407" "TCGA-18-3408" "TCGA-18-3409" "TCGA-18-3410"
rownames(lusc_meta)
[1] "TCGA-60-2722" "TCGA-43-7657" "TCGA-58-A46N" "TCGA-NC-A5HL" "TCGA-63-A5MB"
match(colnames(lusc_reads), rownames(lusc_meta))
[1] 318 265 114 372 353 150 8 287 215 57 199 268 239 179 164 249 383 17 274发布于 2021-04-16 17:33:53
假设lusc_reads和lusc_meta是数据帧,这应该是可行的:
samples_to_keep <- as.vector(rownames(lusc_meta))
lusc_reads_new <- lusc_reads[colnames(lusc_reads) %in% samples_to_keep]以与元数据相同的顺序放置它们
lusc_reads_new <- lusc_reads_new[,match(samples_to_keep, colnames(lusc_reads_new))]https://stackoverflow.com/questions/65914093
复制相似问题