R 组合DT上的combn返回错误“;n<;m";
我有一个31557个观测值的数据集,变量顺序、数量和材料。我试图在R中运行此命令: 第一:R 组合DT上的combn返回错误“;n<;m";,r,dataframe,data.table,correlation,combn,R,Dataframe,Data.table,Correlation,Combn,我有一个31557个观测值的数据集,变量顺序、数量和材料。我试图在R中运行此命令: 第一: DT <- data.table(Order.number=X$Order.number, Materials=X$Materials) setorder(DT, Order.number, Materials) DT材料中是否有NA值 否则你的代码对我有用 #generate some random data X<-data.frame(Order.number=rep(letters[1
DT <- data.table(Order.number=X$Order.number, Materials=X$Materials)
setorder(DT, Order.number, Materials)
DT材料中是否有NA值
否则你的代码对我有用
#generate some random data
X<-data.frame(Order.number=rep(letters[1:10],3), Materials=rep(letters[11:20],3))
library(data.table)
DT <- data.table(Order.number=X$Order.number, Materials=X$Materials)
setorder(DT, Order.number, Materials)
ans <- DT[, as.data.table(do.call(rbind, combn(Materials, 2, simplify=FALSE))),
by=Order.number][,
.N, by=.(V1, V2)]
#生成一些随机数据
X很明显,您的DT中有一些分组变量的值顺序。数字
给出一组长度为1或更小的,因此combn(材料,2…
抱怨n
您可以使用DT[,.N,by=Order.number][N==1]
轻松诊断长度为1的组
然后从摘要中排除这些内容,或者为combn编写一个包装器,当输入长度n
(可以说,combn
应该有一个增强非默认选项,当应用于长度n<2的组时,有选择地抑制错误,这在分组df/dt上运行时很可能发生)返回的是什么length(Materials)
是指长度(dt$Materials)?它正在返回31557可能重复的combn error含义:error in FUN(X[[i]],…):n顺序的值。数字给出一组长度为1或更小的,因此combn(Materials,2…
抱怨nDT[,.N,by=Order.number][N==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)]
#generate some random data
X<-data.frame(Order.number=rep(letters[1:10],3), Materials=rep(letters[11:20],3))
library(data.table)
DT <- data.table(Order.number=X$Order.number, Materials=X$Materials)
setorder(DT, Order.number, Materials)
ans <- DT[, as.data.table(do.call(rbind, combn(Materials, 2, simplify=FALSE))),
by=Order.number][,
.N, by=.(V1, V2)]