R在布尔或if语句中组合各种逻辑运算符

R在布尔或if语句中组合各种逻辑运算符,r,if-statement,R,If Statement,我有一个列出400种产品的数据框。这些产品中的每一种都属于特定的类别:身体清洁、头发、DEO、手部身体、面部、男士、唇部、防晒和女性剃须。此外,我还有销售月,在这个月里,400种产品中的每一种都发布了 我想在我的数据框中创建一个新列,如果产品是在旺季推出的,则显示TRUE,如果不是,则显示FALSE 逻辑是这样的: 如果在10月、11月或12月的旺季推出了“身体清洁”、“头发”、“DEO”、“手部”、“身体”、“面部”、“男性”或“唇部”类别的产品=TRUE,如果在4月、5月、6月或7月的旺季推

我有一个列出400种产品的数据框。这些产品中的每一种都属于特定的类别:身体清洁、头发、DEO、手部身体、面部、男士、唇部、防晒和女性剃须。此外,我还有销售月,在这个月里,400种产品中的每一种都发布了

我想在我的数据框中创建一个新列,如果产品是在旺季推出的,则显示
TRUE
,如果不是,则显示
FALSE

逻辑是这样的: 如果在10月、11月或12月的旺季推出了“身体清洁”、“头发”、“DEO”、“手部”、“身体”、“面部”、“男性”或“唇部”类别的产品=
TRUE
,如果在4月、5月、6月或7月的旺季推出了“阳光”或“女性剃须”类别的产品=
TRUE

我尝试了以下方法:

Sample_15$high_season <- (Sample_15$Category == "BODY CLEANSING" | "HAIR" 
| "DEO" | "HAND BODY"| "FACE" | "MEN" | "LIP" & Sample_15$Months_extract 
== "Oktober" | "November" | "Dezember") | (Sample_15$Category == "SUN" | 
"FEMALE SHAVE" & Sample_15$Months_extract == "April" |                                              
"Mai" | "Juni" | "Juli")

有人知道如何编码布尔逻辑吗?感谢您的帮助

Sample_15$Category==“BODY cleaning”\124; Sample_15$Category==“HAIR”
。。。等等


您的错误是,您没有将所有条件的矢量字体再次写入 用户2974951显示给您。在您的例子中,更容易检查元素是否在向量内

就解决方案而言,解决此问题的一个简单方法是在以下情况下使用
dplyr
case\u:

Sample15 %>% 
mutate(high_season = case_when(
    Category %in% c("BODY CLEANSING","HAIR", "DEO","HAND BODY","FACE","MEN","LIP") 
    & Months_extract %in% c("Oktober","November" ,"Dezember") ~ TRUE, 

    Category %in% c("SUN" ,"FEMALE SHAVE") 
    & Months_extract %in% c("April","Mai","Juni", "Juli") ~ TRUE)) %>% 

mutate(high_season = ifelse(highseason == TRUE, TRUE, FALSE)) #add FALSE to rest
带底座R(不整齐)


hsm感谢您的快速回答@user2974951。我已经试图纠正这一点。然而,布尔值被弄乱了。例如,面部类别和一月是正确的,这毫无意义。我也把语法和逻辑运算符弄乱了吗?谢谢你的回答!我在加载dplyr包时遇到问题。我暂时依靠基地。我想我把代码中的括号搞乱了。我将再次发布这个问题,但框架不同。
Sample_15$Category %in% c("BODY CLEANSING","HAIR",...)
Sample15 %>% 
mutate(high_season = case_when(
    Category %in% c("BODY CLEANSING","HAIR", "DEO","HAND BODY","FACE","MEN","LIP") 
    & Months_extract %in% c("Oktober","November" ,"Dezember") ~ TRUE, 

    Category %in% c("SUN" ,"FEMALE SHAVE") 
    & Months_extract %in% c("April","Mai","Juni", "Juli") ~ TRUE)) %>% 

mutate(high_season = ifelse(highseason == TRUE, TRUE, FALSE)) #add FALSE to rest
hsm <- which(Sample15$Category %in% c("BODY CLEANSING","HAIR", "DEO","HAND BODY","FACE","MEN","LIP") 
        & Sample15$Months_extract %in% c("Oktober","November" ,"Dezember")) 

Sample15[hsm,high_season] <- TRUE 

hsf <- which(Sample15$Category %in% c("SUN" ,"FEMALE SHAVE") 
        & Sample15$Months_extract %in% c("April","Mai","Juni", "Juli"))

Sample15[hsf,high_season] <- TRUE 

Sample15$highseason <- ifelse(Sample15$high_season == TRUE, TRUE, FALSE)