gpt4 book ai didi

r - 将函数标记为 data.table-unaware

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

我想要一个我编写的函数,它希望数据框能够像数据框一样处理数据表;例如,无论参数 d 是数据框还是数据表,我都希望 d[, j] 做同样的事情。

我知道 data.table:::cedta[.data.table 中用于检测数据帧兼容模式是否应该打开。如何针对特定功能强制启用它?

最佳答案

使用setDF(和setDT):

library(data.table)

DT <- data.table(x = 1:2, y = 3:4)

foo <- function(d, j) {
test <- is.data.table(d)
if (test) setDF(d)
res <- d[,j]
if (test) setDT(d) #necessary to avoid changing DT
res
}

foo(DT, 1)
#[1] 1 2

as.data.frame(DT)[, 1]
#[1] 1 2

DT[, 1]
# x
#1: 1
#2: 2

关于r - 将函数标记为 data.table-unaware,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52499783/

24 4 0