将矢量的每个成员与其编号进行比较

时间:2014-10-23 07:29:49

标签: r

问题可能很简单,但我无法解决: 我有数字向量,我需要将每个成员的最大值/ 2与其最大值进行比较,如果所有这些比较都为FALSE,则a = a + 1。 我得到了这些:

comp=c(6.674971, 11.208241, 18.296459, 5.165752, 123.000000)
a=0
if (max(comp)/2<comp[comp < max(comp)]){
a=a+1
}
a

提前谢谢。

2 个答案:

答案 0 :(得分:0)

如果符合以下条件,则情况属实:

 sum(2*comp > max(comp)) ==1

在这种情况下,我会这样写,而不使用ìf

 a <- (sum(2*comp > max(comp)) ==1) + 1

答案 1 :(得分:0)

我不知道你是否想在每次找到大于max / 2的项目时添加1,这就是我向你展示的内容。如果您想要全部为假,请在末尾添加此行。

if (a>0)
    a=1;

我认为这会有效,但是没有编译它,因为我没有R编译器,但这就是这个想法:

comp=c(6.674971, 11.208241, 18.296459, 5.165752, 123.000000)
a=0
temp=comp/max(comp)
for (n in 1:length(comp))
   { if ((temp(i)>max(comp)/2)&&(temp(i)!1))
        a=a+1
   }

希望它有所帮助。