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
我应该举一个更大的例子来说明差异。我将在某个时候更新此答案。
添加回答
举报