r - R foreach循环,添加if语句后无法绑定
问题描述
我正在尝试使用带有 if else 语句的 foreach 循环来绑定多个数据帧。在添加 if else 语句之前,dataframe 能够 rbind 并顺利运行。但是添加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
)
}
}
)
解决方案
推荐阅读
- python - 将多个 CSV 文件从 Google Cloud Bucket 导入 Datalab
- java - SAX 错误:不兼容的类型:字符串无法转换为 InputSource
- javascript - 如何在状态中存储多个反应表单数据
- python - 我的训练和验证代码(张量流)是否正确,模型是否过拟合?
- visual-studio-code - 可以在 VS Code Webview API 中使用 cookie 吗?
- ruby-on-rails - 使用 has_paper_trail_defaults 将忽略添加到 PaperTrail
- python - 从 S3 将文件下载到我的本地设备时出错
- neo4j - 简单的匹配查询需要很长时间
- symfony - 需要解释 postPersist 和数据刷新
- xml - serde-xml-rs 反序列化 u8 有效,但 u16 无效