1. ホーム
  2. r

[解決済み】Rでdata.frameから列全体を削除する

2022-03-30 11:11:09

質問

Rでdata.frameから列全体を削除する方法をご存知の方はいらっしゃいますか?例えば、私がこのdata.frameを与えられたとします。

> head(data)
   chr       genome region
1 chr1 hg19_refGene    CDS
2 chr1 hg19_refGene   exon
3 chr1 hg19_refGene    CDS
4 chr1 hg19_refGene   exon
5 chr1 hg19_refGene    CDS
6 chr1 hg19_refGene   exon

で、2列目を削除したいのですが。

どのように解決するのですか?

に設定することができます。 NULL .

> Data$genome <- NULL
> head(Data)
   chr region
1 chr1    CDS
2 chr1   exon
3 chr1    CDS
4 chr1   exon
5 chr1    CDS
6 chr1   exon

コメントで指摘されているように、他にもいくつかの可能性があります。

Data[2] <- NULL    # Wojciech Sobala
Data[[2]] <- NULL  # same as above
Data <- Data[,-2]  # Ian Fellows
Data <- Data[-2]   # same as above

を介して複数のカラムを削除することができます。

Data[1:2] <- list(NULL)  # Marek
Data[1:2] <- NULL        # does not work!

ただし、マトリックス・サブセットでは、ベクトルになってしまうので注意が必要です。

Data <- Data[,-(2:3)]             # vector
Data <- Data[,-(2:3),drop=FALSE]  # still a data.frame