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

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
我應該舉一個更大的例子來說明差異。我將在某個時候更新此答案。
添加回答
舉報