楼主: xiaowenjie21
1338 1

[问答] 如何使用并行计算优化下面的代码 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

初中生

19%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
78 点
帖子
9
精华
0
在线时间
10 小时
注册时间
2015-1-15
最后登录
2017-8-1

楼主
xiaowenjie21 发表于 2016-6-16 18:42:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
是这样的:
    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,但是会提示错误,或者处理无效。
二维码

扫码加我 拉你入群

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

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

关键词:并行计算 如何使用 Result RESUL Food 如何

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 07:56