data.table行顺序搞砸了

时间:2016-12-17 09:33:19

标签: r data.table

我将csv文件导入为data.frame。当我通过如下指定data.table将其转换为key时,行顺序会搞砸。

setDT(DT, head1)

但如果按以下方式转换为data.table,行顺序不会受到干扰。

setDT(DT)
setkey(DT, head1)

现在执行以下操作,我收到一条警告,指出行订单无效且已更正。

setDT(DT, head1)
setkey(DT, head1)

Warning message:
In setkeyv(x, cols, verbose = verbose, physical = physical) :
  Already keyed by this key but had invalid row order, key rebuilt.
If you didn't go under the hood please let datatable-help know so the root cause can be fixed.

为什么会这样?

1 个答案:

答案 0 :(得分:2)

您错误地使用了setDT功能。第二个参数是keep.rownames,而不是key。除了命名key参数外,还必须将其作为字符串传递。像这样:

setDT(DT, key='head1')

有关详细信息,请参阅?setDT