楼主: qiu435
1931 3

[有偿编程] 如何改写代码提高运行速度? [推广有奖]

  • 0关注
  • 0粉丝

本科生

31%

还不是VIP/贵宾

-

威望
0
论坛币
26 个
通用积分
0.0053
学术水平
4 点
热心指数
4 点
信用等级
2 点
经验
1042 点
帖子
77
精华
0
在线时间
95 小时
注册时间
2013-4-9
最后登录
2017-11-22

楼主
qiu435 发表于 2016-11-16 14:11:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
小弟最近在写一个关于分子标记指纹图谱的包,数据如下图

无标题.png
第一列为品种名,其它列为标记,每行一个观测,现在要从所有标记中选择n个标记,重新组合成图1的形式,计算一些参数。我建了一个函数,进行标记的全组合:
fun<- function(input,n) {
  dna_n<- input[1];
  com<- combn(names(input[-1]),n);
  number<- choose(ncol(input)-1,n);
   for(i in 1:number) dna_n[paste(com[,i],collapse = "+")]<- droplevels(interaction(subset(input,select = com[,i])))
  return(dna_n)
}

参数input为图1的数据,n为选取的标记数,这个函数比较暴力,将所有组合都列出,在进行一步计算比较,在标记较小的时候可以很好的实现,但是当标记数太大的时候,运行速度很慢,使用并行运算也没有很好的改善。期望有大神能不能帮忙修改下代码,提高速度,或者提高一个比较好的抽样算法提高我这个穷举法。
二维码

扫码加我 拉你入群

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

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

关键词:Fun 如何提高速度

沙发
qiu435 发表于 2016-11-18 10:15:49
没有大神帮忙吗?

藤椅
张元明38 发表于 2016-11-18 10:51:32

板凳
qiu435 发表于 2016-11-18 15:32:59
张元明38 发表于 2016-11-18 10:51
灌水啊

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

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