如何基于R中的列表从矩阵中删除列?

时间:2019-02-24 18:38:22

标签: r

我有一个非常大的矩阵,看起来像这样:

        AGAG      AAGAA     AGTG     AGAT     AAGAT     AGTT       
1001    14691      0          0        0        0        5
1002    13        12          0       5831     20473     4
1003    0        5831      20473       0        0        0
1004    0        7936       7936      7936      0        0
1005    16066      0         0         24       2        2

有> 8000列。我需要通过列名删除许多(〜3000)这些列。我在这里缩写了列名(基因组序列)。显然,我不能单独输入那么多。

我制作了一个单独的表,该表具有要删除的列名。例如:

AGAG
AGTG
AGTT 
AGAT  

到目前为止,我一直尝试使用子集和%in%。

1 个答案:

答案 0 :(得分:1)

下面是iris数据集的示例:

col_to_rm <- c("Sepal.Length", "Sepal.Width", "Petal.Length")
col_to_keep <- setdiff(colnames(iris), col_to_rm )
iris[, col_to_keep]

iris是一个数据框,但是如果您有矩阵,它也可以正常工作。

您可能应该考虑这种数据结构(矩阵)是否是保存数据的最佳方法:您有很多列...