如何创建具有两个新类别的新列?

时间:2019-10-03 05:11:34

标签: r if-statement mutate

我试图根据我形成的Tibble中的HatchMass创建一个名为AgeClass的新列,其中包含两个新类别(“青少年”和“成人”)。 “成人”类别几乎等于该列中的所有NA值。我尝试了以下代码:

    PBTdata %>% PBTdata
mutate(AgeClass = ifelse(HatchMass != is.na(HatchMass), "Juvenile", "Adult"))

我一直得到一个包含AgeClass列的输出,但它仅输出“少年”类别,而将“成人”保留为NA。如何更改NA值,以便将其归类为“成人”?

2 个答案:

答案 0 :(得分:0)

我们可以直接在is.na中使用ifelse。试试

library(dplyr)
PBTdata %>%  mutate(AgeClass = ifelse(is.na(HatchMass), "Adult", "Juvenile"))

或者在不带ifelse的基数R中

PBTdata$AgeClass <- c("Juvenile", "Adult")[is.na(PBTdata$HatchMass) + 1]

答案 1 :(得分:0)

使用case_when

library(dplyr)
PBTdata %>%
         mutate(AgeClass = case_when(is.na(HatchMass) ~ "Adult", 
                       TRUE ~ "Juvenile"))