在矢量上使用If else条件

时间:2017-10-31 06:29:10

标签: r if-statement

我遇到以下逻辑问题。基本上,我有MS和Apple的股票数据框架。我想根据某些价格比较执行买入和卖出条件。但是R不允许我在向量中使用If-Else条件,如何克服这种情况

if (mydatastocks$MS<120){
  if (mydatastocks$MS>110 & mydatastocks$MS<120){
    print("buy small")
  }else{
    print("Buy Huge")
  }
} else{
      if(mydatastocks$MS>120)
      print("Ignore")
}

2 个答案:

答案 0 :(得分:4)

将订单分配到数据框中的另一列可能最有意义:

mydatastocks$order <- ifelse(mydatastocks$MS > 110 & mydatastocks$MS < 120,
                             "buy small",
                             ifelse(mydatastocks$MS <= 120, "buy huge", "ignore"))

答案 1 :(得分:3)

您还可以使用case_when来提高易读性

library(dplyr)

mydatastocks %>%
  mutate(message = case_when(
    MS > 110 & MS < 120 ~ "buy small",
    MS >= 120 ~ "Ignore",
    TRUE ~ "Buy Huge"
  ))