gpt4 book ai didi

r - data.table::setorder 更改基础变量

转载 作者:行者123 更新时间:2023-12-02 04:55:11 25 4
gpt4 key购买 nike

我注意到 setorder 似乎改变了它根本不应该触及的变量。一个简单的代码示例最好地解释了这一点:

library(data.table)
x <- 1:3
y <- 3:1
data <- data.frame(x.dat=x, y.dat=y)
setorder(data, y.dat)
x

变量 x 已重新排序,现在也读取 3 2 1 。对我来说,这看起来像是 setorder 命令中的一个错误。如果在数据框定义和setorder之间插入一些修改x的附加命令,效​​果就会消失。

编辑:我刚刚重新运行代码,效果就消失了。从现在到我一年前第一篇文章之间的一段时间,这个问题似乎已经得到解决。具体是1.10。 data.table 的版本都有效果,在 1.11.8 中它按预期工作。

最佳答案

是的,datatable.setorder ,像所有 set* 一样函数,按引用对表进行排序,以及 data.frame只是对列的引用的集合。请参阅R documentation 。对表进行排序当然意味着对表的所有列进行排序,因此列得到排序。

关于r - data.table::setorder 更改基础变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49013495/

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