作者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/m.aspx?n=bbs/Statistics/M.1507984878.A.250.html
1F:推 tan800630: 推 10/14 23:31
2F:推 a15801580max: 推 10/17 19:45