3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以將其設(shè)置為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
正如評(píng)論中指出的那樣,這里還有其他一些可能性:
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!
但是,請(qǐng)謹(jǐn)慎使用矩陣子集,因?yàn)槟赡軙?huì)得到一個(gè)向量:
Data <- Data[,-(2:3)] # vector
Data <- Data[,-(2:3),drop=FALSE] # still a data.frame

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
使用data.frames 時(shí),發(fā)布的答案非常好。但是,從內(nèi)存角度來看,這些任務(wù)的效率可能非常低。對(duì)于大數(shù)據(jù),刪除列可能會(huì)花費(fèi)異常長的時(shí)間和/或由于out of memory錯(cuò)誤而失敗。軟件包data.table可幫助:=操作員解決此問題:
library(data.table)
> dt <- data.table(a = 1, b = 1, c = 1)
> dt[,a:=NULL]
b c
[1,] 1 1
我應(yīng)該舉一個(gè)更大的例子來說明差異。我將在某個(gè)時(shí)候更新此答案。
添加回答
舉報(bào)