Я пытаюсь привязать несколько фреймов данных, используя цикл foreach с оператором if else.Перед добавлением оператора if else, dataframe может свободно связываться и работать.Но после добавления оператора if else таблица результатов (M_test) становится NULL, но цикл foreach выполняется полностью без каких-либо ошибок.
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
)
}
}
)