gpt4 book ai didi

r - data.table:在使用关键变量的单调变换时绕过 setkey

转载 作者:行者123 更新时间:2023-12-04 08:35:00 25 4
gpt4 key购买 nike

'sorted' 属性是官方 data.table API 的一部分吗?

我经常做一些事情,比如从日期变量派生出周/月/季度/年变量,这当然是一个单调变换。然后我通过使用这些单调派生变量之一来做事情。

我想知道直接用周/月/等的名称替换我的日期变量是否安全。 sorted 属性中的变量并使其正常工作?即以下是否安全:

library(data.table)
library(lubridate)
DT <- data.table(day=as.Date(c('2006-01-30', '2006-01-31', '2006-02-01', '2006-02-02')),
d=1:4, key='day')
DT[, month := floor_date(day, unit='month')]
# is this safe?
attr(DT, 'sorted') <- 'month'

我不知道是否有其他一些底层数据结构引用到表中,可能会导致这种技术出现问题。

最佳答案

是的,当我确定数据已排序时,我一直使用该技巧,但使用 setattr而是避免复制:

setattr(DT, 'sorted', 'month')

如果你看 setkeyv的代码你会看到这正是它所做的 - 对数据进行排序,然后设置“排序”属性。

关于r - data.table:在使用关键变量的单调变换时绕过 setkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621779/

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