全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2027 2
2015-11-11
cp是一个2*n的矩阵,treecut是一个大矩阵groupfinding(m,n)是一个输入参数为正整数的函数,返回值是一个整数(用在后面的程序里定位向量内的元素):
groupfinding <- function(m,n){
    return(2205-max(which(treecut[m,]==treecut[n,])))
}


现在需要将cp的每一行的两个元素作为groupfinding的两个输入参数进行运行,我知道这可以用for循环来实现:
for(n in 1:(length(cp)/2)){
    for(n in 1:(length(cp)/2)){
        m<-cp[n,1];
        n<-cp[n,2];
        Haddingup<-Haddingup+HC$height[groupfinding2(m,n)];
    }


其中Haddingup的初始值是0
但是for循环太慢了,有没有什么方法可以用apply来代替for循环?

二维码

扫码加我 拉你入群

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

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

全部回复
2015-11-12 12:36:20
复制代码
不知道你代码里的groupfinding2是什么东西
"<<-"能在函数里给全局变量赋值

二维码

扫码加我 拉你入群

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

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

2015-11-12 21:40:20
把你的groupfinding函数改成矢量形式,然后apply就可以了。可以看看下面的例子。不过我觉得速度应该差不多

复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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