【发布时间】:2013-06-13 11:30:17
【问题描述】:
我有一张名为 mat 的表格(5 列和 3 行):
AC CA RES
1 0
2 2
1 3
0 0
0 1
正在执行的操作是mat[1]/mat[1]+mat[2]
我正在测试以下内容: 1) 如果一行的两列都为零,则结果应为 NA。 2) 如果一行中只有一列为零,而另一列为非零数,则继续计算。 (即使分子为0也没关系)
我目前在逐行的 for 循环中使用这个 if-else 结构:
if(mat[b,1]>=0|mat[b,2]>=0){mat[b,3]<-(mat[b,1]/(mat[b,1]+mat[b,2]));}
else{is.na(mat[b,3])=TRUE;}
我收到以下错误:
1: In Ops.factor(mat[b, 1], 0) : >= not meaningful for factors
2: In Ops.factor(mat[b, 2], 0) : >= not meaningful for factors
有没有更流畅的方法?
数字总是整数,并且总是 0 或更大。
我想使用apply,但是如何直接将apply 的结果分配到第三列?
【问题讨论】:
标签: r math loops logical-operators