私はRでかなり基本的なものを持っており、data.table
25万行90列です。data.table
クラスの列の1つにキーを設定しようとしていますcharacter
。私が電話するとき:
setkey(my.dt,my.column)
次の不可解なエラーメッセージが表示されます。
"Error in setkeyv(x, cols, verbose=verbose) :
reorder received irregular lengthed list"
このメッセージでソースコードのコミットを見つけましたが、それが何を意味するのかを完全に解読することはできません。私のキー列にはNAまたは空白の値が含まれておらず、見るのが完全に合理的であり(株式相場表示が含まれている)、デフォルトのorder()
コマンドで適切に動作します。
さらに苛立たしいことに、次のコードは正しく完了します。
first.dt <- my.dt[1:100000]
setkey(first.dt,my.column)
second.dt <- my.dt[100001:nrow(my.dt]
setkey(second.dt,my.column)
ここで何が起こっているのかわかりません。任意のヒント?
編集1:キーのすべての値がかなり標準的な形式に適合することを確認しました:
> length(grep("[A-Z]{3,4}\\.[A-Z]{2}",my.dt$my.column)) == nrow(my.dt)
[1] TRUE
編集2:私のシステム情報は以下のとおりです(実際にはWindows 7を使用していることに注意してください)。data.tableバージョン1.8を使用しています。
> Sys.info()
sysname release version nodename machine login
"Windows" "Server 2008 x64" "build 7600" "WIN-9RH28AH0CKG" "x86-64" "Administrator"
user effective_user
"Administrator" "Administrator"