全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1280 1
2016-06-16
是这样的:
    for(x in result_list){
         
          rbin_food_name<-unlist(str_split(result[x,]$food_name,','))
          rbin_food_count<-unlist(str_split(result[x,]$food_count,','))
          print(result[x,])
           
          for(m in 1:length(rbin_food_name)){

add_rows<-c(id=result[x,]$order_id,address=result[x,]$address,username=result[x,]$username,foodname=rbin_food_name[m]
                        ,foodcount=rbin_food_count[m])
         
            rbin_df<-rbind(rbin_df,add_rows)
          }
        }

result_list : 这是数据框的行数比如1:50000,
result是数据结果,大概十几万行
下面的for是对数据进行处理,如何使用并行计算包,如foreach 或者parallel 包的并行函数处理 这些逻辑,提升运行速度呢?

我尝试过使用foreach,但是会提示错误,或者处理无效。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-6-16 23:24:04
先不用考虑并行计算的问题,你的代码可优化的余地很大,基本上用到了最慢的方式。你试试先定义好rbin_df的维度(空的),然后用:
rbin_df[m, ] <- add_rows
替代
rbin_df <- rbind(rbin_df,add_rows)
就能快一倍以上。
没能全部看懂代码,感觉可以向量化的,最终优化好后,十几万行的数据,运行起来也就几秒或者零点几秒的事儿,就别麻烦并行计算了吧。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群