【发布时间】:2013-06-17 13:46:41
【问题描述】:
我有两列数据,例如:
col1: c(1,2,3,0,7)
col2: c(4,5,6,7,3)
对于每一列,我想计算这个比率并将其作为列的最后一个值:
No. of values less than 5/(No. of values greater than 5 + No. of values lesser than 5)
因此第一列的结果应该是 4/4+1 = 0.2
我是 R 新手,我能想到的唯一方法是遍历整个列并使用 if-else 结构。有没有更好的办法?
这是我不想使用的,因为它太笨重了:
for (a in 1:5)
{
if(col1<5){v1++;}
if(col1>5){v2++;}
}
v3<-v1/(v1+v2);
col1[6]<-v3;
当我执行上述操作时,我得到了错误:
Error in if (col1[a] < 5) { : missing value where TRUE/FALSE needed
我已经确保列中的所有数字都是数字,为什么会出现这个错误?
【问题讨论】:
-
值 = 5 怎么样?也就是说,对于 col2,那么它是 2/(2+2) = 0.5(在这两种情况下都不计算 5)?
-
Values=5 将被忽略。应该提到这一点,我的错。
标签: r math loops error-handling apply