我遇到以下逻辑问题。基本上,我有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")
}
答案 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"
))