在dataframe中的行上重复ifelse语句或在具有多因子的向量上使用ifelse-statement

时间:2015-07-14 12:24:58

标签: r loops if-statement vector

希望有人可以帮助解决这个问题。

我有一个简化的数据集(df)看起来像这样

 Resp Status    Threshold
  1      16        3
  0      134       4
  1      3.5       3

我想对每一行进行ifelse-test

CR.Wat = ifelse(Threshold != "NA" && Status != "NA", 
                ifelse(Resp != 1, Threshold/Status, Status/Threshold), 
                "")

我希望获得三个阈值/状态值。但相反,我只得到一个值。

我认为我应该以某种方式告诉我每个行都希望它。

我尝试使用此公式

来做到这一点
CR.Wat = ifelse(c(Threshold) != "NA" && c(Status) != "NA",
                ifelse(c(Resp) != 1, c(Threshold/Status), c(Status/Threshold)), 
                "")

但这并没有影响任何事情。

1 个答案:

答案 0 :(得分:1)

您的操作只返回了一个值,因为您使用的是&&而不是&。您可以在?"&"了解这两个运算符之间的区别。

话虽这么说,当Resp!= 1和状态/阈值(又名{{1}时)注意到你想要阈值/状态(又名(Threshold/Status)^1)时,可以在不使用嵌套ifelse的情况下完成操作。 })当Resp == 1时。

(Threshold/Status)^(-1)