问题可能很简单,但我无法解决: 我有数字向量,我需要将每个成员的最大值/ 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
提前谢谢。
答案 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
}
希望它有所帮助。