R foreach loop, unable to rbind after added if statement

402 Views Asked by At

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
)
} 
}
)
0

There are 0 best solutions below