簡體   English   中英

data.table的子集,不包括某些列

[英]Subset of data.table excluding some columns

我只需要從data.table排除一組列data.table 我可以通過將-c()與這些列的編號一起使用來實現:

dti <- data.table(iris)
dti1 <- dti[, -c(3,5), with=F]

但我想使用列名而不是數字,例如

colsExcl <- c('Petal.Length', 'Species');
dti1 <- dti[, -c(colsExcl), with=F] # error: invalid argument to unary operator

您可以嘗試setdiff:= NULL ,但是行為有所不同。

使用setdiff ,您必須將輸出分配給另一個對象:

colsExcl <- c('Petal.Length', 'Species')
dti1 <- dti[, setdiff(names(dti), colsExcl), with = FALSE]

相比之下,使用:= NULL將從原始data.table刪除列:

dti[, (colsExcl) := NULL][]
#      Sepal.Length Sepal.Width Petal.Width
#   1:          5.1         3.5         0.2
#   2:          4.9         3.0         0.2
#   3:          4.7         3.2         0.2
#   4:          4.6         3.1         0.2
#   5:          5.0         3.6         0.2
#  ---                                     
# 146:          6.7         3.0         2.3
# 147:          6.3         2.5         1.9
# 148:          6.5         3.0         2.0
# 149:          6.2         3.4         2.3
# 150:          5.9         3.0         1.8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM