【问题标题】:Adding rows in a dataframe in R在 R 中的数据框中添加行
【发布时间】:2022-08-15 21:52:23
【问题描述】:

我有一个以下数据框。

id color grade
1 green B
2 red
3 C
4
5 blue A

我必须根据颜色和等级添加名为 col_scrgrd_scr 的列。然后我必须添加这两列以获得名为final_score 的列。我想要的数据框应该如下所示,

id color grade col_scr grd_scr final_score
1 green B 1 1 3
2 red 3 NA 3
3 C NA 0 0
4 NA NA NA
5 blue A 2 2 4

到目前为止,我的代码看起来像,

df <- df %>%
   mutate(clr_scr = case_when(color == \'green\' ~ 1,
                              color == \'blue\' ~ 2,
                              color == \'red\' ~ 3),
          grd_scr = case_when(grade == \'A\' ~ 2,
                              grade == \'B\' ~ 1,
                              grade == \'C\' ~ 0))

如何将我的第三列final_score 添加到mutate

  • 请使用dput 提供可重现的数据集。

标签: r dataframe dplyr sum


【解决方案1】:

仅当两个变量都不是 NA 时,您才可以使用 ifelse 条件求和,否则为 NA。

df %>% 
  mutate(final_score = ifelse(all(is.na(across(col_scr:grd_scr))), 
                              NA, rowSums(across(col_scr:grd_scr), na.rm = T)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2019-08-19
    • 2021-03-16
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多