在R中正确使用if-else函数

时间:2016-04-06 12:39:41

标签: r if-statement

我正在做一项关于中风症状性或无症状的钙化量的研究项目。

症状侧可以是1(右)或2(左)。对于所有情况,我计算了右侧和左侧的钙化量。接下来,我想比较两侧(symp。与asymp)的钙化总量。

我认为以下代码是正确的:

ds$totalcalcSymp <- if(ds$sympt_side==2) ds$totalcalcL else 
  (ds$totalcalcR)

ds$totalcalcAsymp <- if(ds$sympt_side>1) ds$totalcalcR else
  (ds$totalcalcL)

但是,上面的R代码似乎不起作用。对于症状方面,我得到的值与totalcalcR(右侧)相似。并且对于totalcalcL(左侧)的无症状侧值。

我也尝试过仅使用if语句,但仍然得到与上面相同的结果。问题是否与我收到的警告信息有关?

the condition has length > 1 and only the first element will be used

将正确的一侧(totalcalcR或totalcL)与中风的症状和渐近方面联系起来的适当解决方案是什么?

提前谢谢大家!

1 个答案:

答案 0 :(得分:1)

尝试使用ifelse()

ds$totalcalcSymp <- ifelse(ds$sympt_side==2, ds$totalcalcL, ds$totalcalcR)