我有一个数据框dataGL_all:
Date<-c("01-01-15 04:00","01-01-15 04:20","01-01-15 04:40")
FLIin<-c(96,39,72)
FLIout<-c(173,147,103)
FBEin<-c(96,116,166)
FBEout<-c(32,53,120)
dataGL_all<-data.frame(Date, FLIin, FLIout, FBEin, FBEout)
此外,我有一个向量:
Remove <- c("FBEin", "FLIout")
我将用一段代码从数据帧dataGL_all中删除向量Remove中的列。我尝试了许多功能组合(例如grep(),c()和names()),但无法使其正常工作……不胜感激:)
PS我的“真实”数据框包含68列,我想删除36列(向量中的那些)。
只是增加了更多的可能性,使用data.table
包装这种操作非常简单。您可以使用!
和with = FALSE
组合临时删除列。或者,您可以()
在data.table
环境中使用此评估向量并NULL
使用:=
赋值运算符对其进行赋值时,通过引用来修改数据集,因此请执行以下操作:
加载包并转换为data.table
类
library(data.table)
setDT(dataGL_all)
然后要么
dataGL_all[, !Remove, with = FALSE]
# Date FLIin FBEout
# 1: 01-01-15 04:00 96 32
# 2: 01-01-15 04:20 39 53
# 3: 01-01-15 04:40 72 120
或通过引用更新数据集
dataGL_all[, (Remove) := NULL][]
# Date FLIin FBEout
# 1: 01-01-15 04:00 96 32
# 2: 01-01-15 04:20 39 53
# 3: 01-01-15 04:40 72 120
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句