首页 > 解决方案 > 如何添加对最后一个“n”值进行排序的列?

问题描述

我有一个带有列的数据框ActiveCycles. 我想添加第三列state,它是根据循环数分类的。

例如:正常状态的前20个,后20个“紧急”,其余的“正常”

我尝试为最后一个值和第一个值创建数据框,然后加入它们,但这很麻烦,我不知道如何将标签放在中间数据上。

df  <-  data_frame %>% 
         group_by(ACT) %>%
           top_n(20)
df=mutate(df, Fault = "EMERGENCIA")

我突然想到,使用ifelse它会更容易,但我不知道在最后一个条件下放什么。

Dt <- data_frame %>%
  group_by(ACT) %>%
  mutate(Faul = ifelse(CYCLE <= 20 , "Normal", 
                        ifelse(20 < CYCLE & CYCLE < ???????, "alerta", "emergencia")))

标签: rdataframedplyr

解决方案


您可以尝试case_when区分以下情况:

data_frame %>%
  mutate(Faul = case_when(CYCLE <= 20 ~ "Normal",
                          CYCLE <= 40 ~ "alerta",
                          TRUE ~ "emergencia"))

推荐阅读