apriori<-function(data,minsup){
df<-data.frame(candidate=NULL,countnum=NULL)
#找出频繁候选1项集
for(i in 1:length(data))
for(j in 1:length(data[[i]])){
if(any(df$candidate == data[[i]][j]))
df$countnum[which(df$candidate==data[[i]][j])]<-df$countnum[which(df$candidate==data[[i]][j])]+1
else {
#添加新元素
a<-data.frame(candidate=data[[i]][j],countnum=1)
df<-rbind(a,df)
}
}
#提取大于最小支持度的元素
df1<-df[with(df,countnum>=minsup),]
#频繁n项集
k<-0
df2<-data.frame(candidate=NULL,countnum=NULL)
for(i in 1:nrow(df1))
for(j in (i+1):nrow(df1)){
if(sum(df1$candidate[i]==df$candidate[j])==k){
rownum<-nrow(df2)+1
df2[rownum,]<-c(union(df1[i,1],df1[j,1]),1)
}
}
return(df2)
}
list1<-list(T100=c("I1","I2","I5"),T200=c("I2","I4"),T300=c("I2","I3"),T400=c("I1","I2","I4"),T500=c("I1","I3"),
T600=c("I2","I3"),T700=c("I1","I3"),T800=c("I1","I2","I3","I5"),T900=c("I1","I2","I3"))
result<-apriori(list1,2)
result
错误代码:Error in if (sum(df1$candidate[i] == df$candidate[j]) == k) { :
missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In matrix(value, n, p) : data length exceeds size of matrix
2: In matrix(value, n, p) : data length exceeds size of matrix
3: In matrix(value, n, p) : data length exceeds size of matrix
4: In matrix(value, n, p) : data length exceeds size of matrix
5: In matrix(value, n, p) : data length exceeds size of matrix
6: In matrix(value, n, p) : data length exceeds size of matrix
7: In matrix(value, n, p) : data length exceeds size of matrix
8: In matrix(value, n, p) : data length exceeds size of matrix
9: In matrix(value, n, p) : data length exceeds size of matrix
10: In matrix(value, n, p) : data length exceeds size of matrix
这个警告信息也不是很懂是什么意思
希望各位大神求解,感谢!