【问题标题】:How can I add a column that sorts the last "n" values?如何添加对最后一个“n”值进行排序的列?
【发布时间】:2020-10-22 07:52:51
【问题描述】:

我有一个包含ActiveCycles 列的数据框。 我想添加一个名为state 的第三列,它根据循环数进行分类。

例如:前20个状态为Normal,后20个为“emergency”,其余为“normal”

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

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")))

【问题讨论】:

标签: r dataframe dplyr


【解决方案1】:

你可以试试case_when区分大小写:

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

【讨论】:

    猜你喜欢
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2022-10-21
    • 2017-03-22
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多