Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中保存简单循环的输出时出现问题_R_For Loop - Fatal编程技术网

在R中保存简单循环的输出时出现问题

在R中保存简单循环的输出时出现问题,r,for-loop,R,For Loop,希望这封邮件能让你安全健康 我在收集一个无法破解的简单循环的输出时遇到了一个令人沮丧的问题 下面是循环,它使用我的数据的不同上限多次计算相同的汇总统计数据。这将为我提供正确的值,并且打印时不会出现任何问题 > for (i in maxdist) + { + homo_sax <- sum(W_distances$distance > 0 & W_distances$distance < i & W_distances$concat_I

希望这封邮件能让你安全健康

我在收集一个无法破解的简单循环的输出时遇到了一个令人沮丧的问题

下面是循环,它使用我的数据的不同上限多次计算相同的汇总统计数据。这将为我提供正确的值,并且打印时不会出现任何问题

>   for (i in maxdist)
+   {
+       homo_sax <- sum(W_distances$distance > 0 & W_distances$distance < i & W_distances$concat_ID=="saxatilis_saxatilis") ## count all sax_sax pairs
+       homo_arc <- sum(W_distances$distance > 0 & W_distances$distance < i & W_distances$concat_ID=="arcana_arcana") ## count all the arc_arc pairs
+           hetero <- sum(W_distances$distance > 0 & W_distances$distance < i & W_distances$concat_ID=="arcana_saxatilis") ## count all the arc_sax pairs
+           total_homo = homo_sax + homo_arc ## calculate the total number of homo observations
+               temp_RI <- 1-2*hetero/(total_homo+hetero) ### calculate RI according to equation RI4 from Sobel & Chen (2013)
+                   print(temp_RI)
+                   }
[1] 0.2046285
[1] 0.1603105
[1] 0.1195596
[1] 0.01857161
[1] 0.01784158
[1] 0.01498829
> 
当我尝试将这些值保存到空向量时,问题就出现了,因为我得到的数字不同,并且不正确:

> maxdist <- seq(from = 0.5, to = 3, by = 0.5) ## the max distance for each bin
    RI_bins <- vector("numeric",length(maxdist))
    for (i in maxdist)
    {
        homo_sax <- sum(W_distances$distance > 0 & W_distances$distance < i & W_distances$concat_ID=="saxatilis_saxatilis") ## collect all sax_sax pairs
        homo_arc <- sum(W_distances$distance > 0 & W_distances$distance < i & W_distances$concat_ID=="arcana_arcana") ## collect all the arc_arc pairs
            hetero <- sum(W_distances$distance > 0 & W_distances$distance < i & W_distances$concat_ID=="arcana_saxatilis")
            total_homo = homo_sax + homo_arc
                temp_RI <- 1-2*hetero/(total_homo+hetero) ### equation RI4 from Sobel & Chen (2013)
                    RI_bins[i]<-temp_RI
                    }
> RI_bins
[1] 0.11955961 0.01784158 0.01498829 0.00000000 0.00000000 0.00000000
如果有人能帮助我理解我在这里遗漏了什么,我将不胜感激。提前谢谢

Sean

maxdist是一个浮点数,不能用作向量中的索引。通过尝试,小数被截断并插入其中


vec非常感谢您抽出时间来了解这一点以及您的解释。