У меня есть набор данных с 31557 наблюдениями и переменными Order.number и Materials.Я пытаюсь запустить это в R:
Сначала:
DT <- data.table(Order.number=X$Order.number, Materials=X$Materials)
setorder(DT, Order.number, Materials)
Затем:
library(data.table)
ans <- DT[, as.data.table(do.call(rbind, combn(Materials, 2, simplify=FALSE))),
by=Order.number][,
.N, by=.(V1, V2)]
Но я получаю ошибку в combn(Materials, 2, simplify = FALSE) : n < m
Это работает, если я просто использую случайно сгенерированную таблицу.Так может ли это быть что-то связанное с имеющимся у меня набором данных?
РЕДАКТИРОВАТЬ: я пытался с значение combn error , но получаю «Ошибка в do.call (rbind, function (x)»if (length (x)> 1) {: второй аргумент должен быть списком "
ans <- DT[, as.data.table(do.call(rbind, function(x)
if(length(x)>1) {
combn(Materials, 2, simplify=FALSE)
}
else x)),
by=Order.number][,
.N, by=.(V1, V2)]