R中的循环语句有问题

荒野

我在编写适当的R代码以执行循环(如果有条件的话)的条件时遇到了麻烦。我正在尝试求解x(必须是整数),例如F_c = 5(见下文)。z和w都是一系列已知值,其中z代表丰度值,w代表采样面积。现在,我实际上是在输入x的随机值,以了解可以达到多近的距离F_c = 5我想为此编写一个循环,当x的迭代结果为时,也要使循环停止F_c = 5任何帮助将不胜感激,我已经花了很多时间在此上并且还没有找到类似的问题(但是如果有任何问题,请直接把我引向解决方案)。谢谢,

cond = ifelse(z<=x, 1, 0)

F_c = 100*(sum(w*z*cond)/sum(w*z))
尼古拉

不太清楚,但是我假设您想知道在什么时候累积的总和w*z达到的5%sum(w*z),同时遵循的顺序z如果正确,则可以尝试以下操作:

 #for every z get the order indices
 indices<-order(z)
 #sort both z and w by z
 z<-z[indices]
 w<-w[indices]
 #now cumsum will give you the cumulative sum of a vector
 #and you compare it  to sum(z*w). 
 #findInterval will give you the index of when you reach .05
 res<-findInterval(.05,cumsum(w*z)/sum(w*z))
 #the value you are looking for:
 z[res]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章