i'm trying to rbind multiple dataframe using foreach loop with if else statement. Before adding if else statement, dataframe are able to rbind and running smoothly. But after added if else statement, the result table (M_test) become NULL, but the foreach loop run completely without any error.
system.time(
M_test <- foreach(h = 1:50, .combine=rbind, .packages="data.table") %dopar% {
# Convert datafram to vector by row
v_items <- temp2[h,]
# Remove blank & NA
v_items <- v_items[v_items != "NA"]
v_items <- v_items[v_items != ""]
rules <- arules::apriori(trans,parameter=list(supp=0.001,conf=0.1, target = "rules", minlen=2),
appearance=list(lhs=c(as.character(v_items)),default="rhs"))
if(length(rules)!=0){
rules_df <- arules::DATAFRAME(rules)
data.table(
Key=T_test[h,1],
LHS=rules_df$LHS,
RHS=rules_df$RHS,
support=rules_df$support,
confidence=rules_df$confidence,
lift=rules_df$lift,
count=rules_df$count
)}
else{
rules_df <- data.frame(LHS=as.character("NA"),
RHS=as.character("NA"),
support=as.numeric(0),
confidence=as.numeric(0),
lift=as.numeric(0),
count=as.numeric(0))
data.table(
Key=T_test[h,1],
LHS=rules_df$LHS,
RHS=rules_df$RHS,
support=rules_df$support,
confidence=rules_df$confidence,
lift=rules_df$lift,
count=rules_df$count
)
}
}
)