Таблицы данных с более чем 2 ^ 31 строками поддерживаются в R вместе с пакетом таблиц данных? - PullRequest
1 голос
/ 08 апреля 2020

Я пытаюсь сделать перекрестное соединение (из первоначального вопроса здесь ), и у меня есть 500 ГБ оперативной памяти. Проблема в том, что итоговая таблица данных содержит более 2 ^ 31 строк, поэтому я получаю эту ошибку:

Error in vecseq(f__, len__, if (allow.cartesian || notjoin || !anyDuplicated(f__,  : 
  Join results in more than 2^31 rows (internal vecseq reached physical limit). Very likely misspecified join. Check for duplicate key values in i each of which join to the same group in x over and over again. If that's ok, try by=.EACHI to run j for each group to avoid the large allocation. Otherwise, please search for this error message in the FAQ, Wiki, Stack Overflow and data.table issue tracker for advice.

Есть ли способ переопределить это? Когда я добавляю by=.EACHI, я получаю ошибку:

  'by' or 'keyby' is supplied but not j

Я знаю, что этот вопрос не в идеальном воспроизводимом формате (мои извинения!), Но я не уверен, что это строго необходимо для ответа. Может быть, я просто что-то упустил или data.table ограничен таким образом?

Мне известен только этот вопрос от 2013 года, который, по-видимому, предполагает, что data.table не может сделать это назад тогда.

Это код ниже, который вызывает ошибку:

  pfill=q[, k:=t+1][q2[, k:=tprm], on=.(k), nomatch=0L,allow.cartesian=TRUE][,k:=NULL]
...