gpt4 book ai didi

r - 根据逻辑向量选择 data.table 中的列

转载 作者:行者123 更新时间:2023-12-04 00:58:14 24 4
gpt4 key购买 nike

假设我有以下 data.frame 和以下 data.table:

DF = data.frame(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)

使用 data.frame,我可以根据逻辑向量选择列,如下所示:
DF[,c(TRUE,TRUE,FALSE)]

结果是:
  x y
1 a 1
2 a 3
3 a 6
4 b 1
5 b 3
6 b 6
7 c 1
8 c 3
9 c 6

然而
DT[,c(TRUE,TRUE,FALSE)]

造成:
[1]  TRUE  TRUE FALSE

怎么做到呢?

最佳答案

更新 2020-04-22

data.table 的当前 CRAN 版本中, DT[ , c(TRUE, TRUE, FALSE)]会工作 - 不需要 with=FALSE .将这个较旧的答案留在这里供后代使用:

我们需要with=FALSE

DT[, c(TRUE, TRUE, FALSE), with=FALSE]

基于 ?data.table 中的文档

By default with=TRUE and j is evaluated within the frame of x; column names can be used as variables. When with=FALSE j is a character vector of column names or a numeric vector of column positions to select, and the value returned is always a data.table. with=FALSE is often useful in data.table to select columns dynamically.

关于r - 根据逻辑向量选择 data.table 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33301901/

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