如何获取矩阵的子集,其中第一列是列表中的任何一列

时间:2015-08-14 01:24:46

标签: r matrix

我有一个名为LungData的矩阵,其中包含基因名称和患者样本。有大约26,000个基因,每个基因有41个样本。基因名称在第一列中,样本在后续列中。

> dim(LungData)
[1] 26002    42

我有一些我感兴趣的~2,000个基因的子集。这个子集是一个名为GeneSubset的列表。

> dim(GeneSubset)
[1] 1999    1

如何获得仅包含来自GeneSubset的基因的2000x42子矩阵?我对其他基因不感兴趣,处理较小的子矩阵会使计算速度加快。

1 个答案:

答案 0 :(得分:0)

将所需基因的子集存储在载体中而不是列表中。

GeneSubset <- as.vector(GeneSubset)

也是

rownames(LungData) <- LungData[,1] #assigning row names to the original matrix
LungData <- LungData[,-1] #removing 1st column since we already assigned rownames
ReqdData <- LungData[GeneSubset,] #subsetting the data on the basis of rownames

您可能还想在base R或@akrun给定的代码中使用子集函数。