jlh*_*ard 17 r data.table
setkey()
各州的文件:
setkey()对data.table进行排序并将其标记为已排序.排序列是关键.密钥可以是任何顺序的任何列.列始终按升序排序.该表由参考更改 ...(强调添加)
我总是将其解释为setkey()
创建索引,而不是物理地重新排列数据表的行(类似于索引数据库表).但是如果这是真的那么删除密钥(使用setkey(DT,NULL)
),应该删除索引并将数据表恢复为原始的未排序顺序.这不是发生的事情:
library(data.table)
DT <- data.table(a=3:1, b=1:3, c=5:7); DT
a b c
1: 3 1 5
2: 2 2 6
3: 1 3 7
setkey(DT,a); DT
a b c
1: 1 3 7
2: 2 2 6
3: 3 1 5
setkey(DT,NULL)
a b c
1: 1 3 7
2: 2 2 6
3: 3 1 5
Run Code Online (Sandbox Code Playgroud)
所以有两个问题:
1:如果行重新排列(排序),那么"按引用更改"的含义是什么意思?
2:究竟setkey(DT,NULL)
做了什么?
edd*_*ddi 12
行已排序."通过引用更改"这里表示没有复制整个表,只是交换了行.
setkey(DT, NULL)
相当于setattr(DT, "sorted", NULL)
.它只是取消设置"已排序"属性.
归档时间: |
|
查看次数: |
1052 次 |
最近记录: |