gpt4 book ai didi

r - 如何从data.table中排除列?

转载 作者:行者123 更新时间:2023-12-04 06:56:37 26 4
gpt4 key购买 nike

我有一个data.table,并且要排除一些列集。例如,

library(data.table)
dt <- data.table(a = 1:2, b = 2:3, c = 3:4, d = 4:5)
dt[ , .(b, c)]


给我第二列和第三列b和c。我该如何排除b和c列。来自data.frame世界,我期望如下所示:

dt[ , -.(b, c)]


或许

dt[ , !.(b, c)]


但无论这些工作。我知道我可以用

dt[ , -c(2:3), with = FALSE]


但这只是(据我所知)将data.table转换为data.frame,然后使用标准操作。我想避免这种情况,因为这是a)作弊,b)放弃了data.table中可用的速度提升。我查看了data.table常见问题解答和小插图,似乎什么也找不到。

(我知道这都是非常简单的,我可以选择其他两列。但是,这是我正在使用的大量更大数据的缩影。)

最佳答案

我们可以使用setdiff

dt[, setdiff(names(dt), c("b", "c")), with = FALSE]


或者我们可以分配给 NULL(与其他答案一样),但只需一步即可

dt[, c("b", "c") := NULL][]

关于r - 如何从data.table中排除列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37210489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com