楼主: Thanos123
1091 4

[问答] 求各位大神指教如何实现多线程 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

27%

还不是VIP/贵宾

-

威望
0
论坛币
917 个
通用积分
2.0100
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1205 点
帖子
55
精华
0
在线时间
170 小时
注册时间
2016-4-26
最后登录
2024-12-7

楼主
Thanos123 发表于 2018-6-6 17:08:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我预先创建一个数据集d_adult_ 截图1.png
然后又创建了SAM字段把d_adult_分为10份
  1. d_adult_$SAM <- cut(1:nrow(d_adult_),10,labels = F)
复制代码
后面我创建函数func
  1. func <- function(n){#n=1
  2.   df <- subset(d_adult_ , SAM == n)
  3.   for(j in df[,'D_P_PRODUCTNAME']){
  4.     for(k in df[which(df[,'D_P_PRODUCTNAME']==j),'D_C_SHOPNAME']){
  5.       d_pr <- d_adult_[which(d_adult_[,'D_P_PRODUCTNAME']==j&d_adult_[,'D_C_SHOPNAME']==k),'M_S_PRICE']
  6.       d_pr1 <- df[which(df[,'D_P_PRODUCTNAME']==j&df[,'D_C_SHOPNAME']==k),'M_S_PRICE']
  7.       if(length(d_pr1)==0){
  8.         d_pr1 <- 0
  9.       }
  10.       d_sd <- sd(d_pr)
  11.       d_me <- mean(d_pr)
  12.       if(is.na(d_sd)==T){
  13.         d_sd <- 0
  14.       }
  15.       
  16.       if((d_me+d_sd) < d_pr1)
  17.       {
  18.         df[which(df[,'D_P_PRODUCTNAME']==j&df[,'D_C_SHOPNAME']==k),'over_dist'] <- '过高'
  19.       }
  20.       else if((d_me-d_sd) > d_pr1)
  21.       {
  22.         df[which(df[,'D_P_PRODUCTNAME']==j&df[,'D_C_SHOPNAME']==k),'over_dist'] <- '过低'
  23.       }
  24.       else if((d_me+d_sd) >= d_pr1&(d_me-d_sd) <= d_pr1)
  25.       {
  26.         df[which(df[,'D_P_PRODUCTNAME']==j&df[,'D_C_SHOPNAME']==k),'over_dist'] <- '正常'
  27.       }
  28.     }
  29.   }
  30. }
复制代码
后面我用parallel包运行了
  1. system.time({  
  2.   x <- 1:10  
  3.   cl <- makeCluster(4) # 初始化四核心集群  
  4.   results <- parLapply(cl,x,func) # lapply的并行版本  
  5.   res.df <- do.call('rbind',results) # 整合结果  
  6.   stopCluster(cl) # 关闭集群  
  7. })  
复制代码
这里面的‘X’值如何设置我一直不太清楚,也请大神指教!
而且运行过后弹出
截图2.png
请问为什么找不到d_adult_?


二维码

扫码加我 拉你入群

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

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

关键词:数据集

沙发
cheetahfly 在职认证  发表于 2018-6-6 22:03:58
要把数据加载到每个内核,再看看package的说明。

藤椅
Thanos123 发表于 2018-6-7 10:53:41
cheetahfly 发表于 2018-6-6 22:03
要把数据加载到每个内核,再看看package的说明。
哦哦,正常跑起来了,谢谢
但是还是想请教下X参数是干嘛用的?我看help里翻译过来是‘用于聚类应用和聚类应用的向量,用于聚类和聚类应用的矩阵’是这个意思吗。。。

板凳
cheetahfly 在职认证  发表于 2018-6-7 12:20:18
有多少个内核,就cut成多少份,X就有多少个element

报纸
hifinecon 发表于 2018-6-7 15:27:01
interesting!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 11:03