データ テーブルを使用しているときに、このエラーが発生することがあります。エラーを再現する例を思いつくのに苦労したので、これはあまり現実的ではないことをお詫びします.
(NとJで番号が異なります)
unique
j列の関数を使用すると、エラーが最も頻繁に発生するようです。
DT = data.table(
group1 = rep(c('a', 'b', 'c', 'd'), each = 3),
group2 = rep(c('w', 'x', 'y', 'z'), times = 3),
values = rep(1:6, times = 2))
## Works:
DT[i=TRUE, j=list(unique(group1), group1, .N), keyby=list(group2)]
## Error:
DT = rbind(DT, DT[1])
DT[i=TRUE, j=list(unique(group1), group1, .N), keyby=list(group2)]
同様の別の例を次に示します。
set.seed(3)
DT = data.table(
group1 = sample(c('a', 'b', 'c', 'd'), 1000, replace=TRUE),
group2 = sample(c('w', 'x', 'y', 'z'), 1000, replace=TRUE),
values = sample(1:20, replace = TRUE))
DT[, j=list(unique(group1), group1), keyby=list(group2)]
最初の例では、実際のデータに関連しているように見える数値が示されていますが、2 番目の例では奇妙な数値が示されています。
Error in `[.data.table`(DT, , j = list(unique(group1), group1), keyby = list(group2)) : maxn (242) is not exact multiple of this j column's length (4)
誰かがこれの原因を教えてもらえますか?