Странная ошибка при расширении data.table
Мы наткнулись на какое-то странное поведение, пытаясь расширить data.table. Следующий код работает нормально:
dt <- data.table(var1=1:2e3, var2=1:2e3, freq=1:2e3)
system.time(dt.expanded <- dt[ ,list(freq=rep(1,freq)),by=c("var1","var2")])
## user system elapsed
## 0.05 0.01 0.06
Но используя следующееdata.table
set.seed(1)
dt <- data.table(var1=sample(letters,1000,replace=T),var2=sample(LETTERS,1000,replace=T),freq=sample(1:10,1000,replace=T))
с тем же кодом дает
Error in rep(1, freq) : invalid 'times' argument
Мой вопрос
Может быть, это ошибка вdata.table
?
(Я получил синтаксис этого примера изR Основы машинного обучения)
редактировать
Таким образом, проблема действительно, кажется, сrep
а не сdata.table
, Страница справки дляrep
говорит по параметруtimes
:
Целочисленный вектор, дающий (неотрицательное) число раз, чтобы повторить каждый элемент, если длина длины (х), или повторить весь вектор, если длина 1.
Второйdata.table
создаетtimes
другой длины, чемx
который выдает ошибку.