可能重复:
从R中的data.frame中删除整个列
是否有更好的方法从数据框中按名称删除列而不是以下?
Orange[colnames(Orange) != "Age"]
Run Code Online (Sandbox Code Playgroud)
我尝试过以下操作并收到错误:
> Orange[-"Age"]
Error in -"age" : invalid argument to unary operator
> Orange[,-"Age"]
Error in -"age" : invalid argument to unary operator
> Orange[[,-"Age"]]
Error in -"age" : invalid argument to unary operator
Run Code Online (Sandbox Code Playgroud)
您可以将列设置为NULL
> dat <- data.frame(a = 1, b = 1, c = 1)
> dat
a b c
1 1 1 1
> dat$a <- NULL
> dat
b c
1 1 1
> dat["b"] <- NULL
> dat
c
1 1
Run Code Online (Sandbox Code Playgroud)
有人会出现并指出data.frame将制作大量数据副本来完成这项简单的任务.当数据变大(数百万行)时,这将花费大量时间,并且由于内存限制可能无法工作.如果这将是一个问题,请使用data.table和:=运营商:
library(data.table)
> dt <- data.table(a = 1, b = 1, c = 1)
> dt[,a:=NULL]
b c
[1,] 1 1
Run Code Online (Sandbox Code Playgroud)
尝试:
Orange[-match("age",names(Orange))]
Tree circumference
1 1 30
2 1 58
3 1 87
4 1 115
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5387 次 |
| 最近记录: |