[英]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.