作者celestialgod (天)
看板Statistics
标题Re: [程式] R语言同时删除多列数据
时间Sat Oct 14 20:41:16 2017
※ 引述《a15801580max (blacktea)》之铭言:
: [软体程式类别]:
: R
: [程式问题]:
: 同时删除多列数据
: [软体熟悉度]:
: 新手
: [问题叙述]:
: 简单删除几列数据的指令我已经会了
: 但我有一组50万笔的数据
: 例如现在想删除包含A值的某几列(可能有几千几万列),
: 请问R语言有办法一次删掉吗?
: 现在想到一个方法
: 先在EXCEL先把全部的A值删掉後输入到R
: 再用删除缺失值的方法来达成我的目标
: 请问有更好的做法吗
供你参考:
library(nycflights13)
library(data.table)
nrow(flights) # 336776
flightsDT <- data.table(flights)
cols <- c("arr_time", "sched_arr_time", "air_time")
judgeFunc <- function(x, v){
# avoid NAs
out <- rep(FALSE, length(x))
out[x == v] <- TRUE
return(out)
}
system.time({
flightsDT[ , removeMark := Reduce("|", lapply(.SD, judgeFunc, v = 830)),
.SDcols = cols]
newFlightsDT <- flightsDT[removeMark == FALSE][ , removeMark := NULL]
})
# user system elapsed
# 0.03 0.00 0.03
nrow(newFlightsDT) # 336098
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.224.97.194
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1507984878.A.250.html
1F:推 tan800630: 推 10/14 23:31
2F:推 a15801580max: 推 10/17 19:45