亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從R中的data.frame中刪除整列

從R中的data.frame中刪除整列

翻翻過去那場雪 2019-10-14 11:11:19
有誰知道如何從R中的data.frame中刪除整個列?例如,如果我得到此data.frame:> head(data)   chr       genome region1 chr1 hg19_refGene    CDS2 chr1 hg19_refGene   exon3 chr1 hg19_refGene    CDS4 chr1 hg19_refGene   exon5 chr1 hg19_refGene    CDS6 chr1 hg19_refGene   exon我想刪除第二列。
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

您可以將其設置為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


查看完整回答
反對 回復 2019-10-14
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

使用data.frames 時,發布的答案非常好。但是,從內存角度來看,這些任務的效率可能非常低。對于大數據,刪除列可能會花費異常長的時間和/或由于out of memory錯誤而失敗。軟件包data.table可幫助:=操作員解決此問題:


library(data.table)

> dt <- data.table(a = 1, b = 1, c = 1)

> dt[,a:=NULL]

     b c

[1,] 1 1

我應該舉一個更大的例子來說明差異。我將在某個時候更新此答案。


查看完整回答
反對 回復 2019-10-14
  • 3 回答
  • 0 關注
  • 4064 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號