如何在我的数据框中将某些列的负值突变为正值

问题描述

我有以下问题:

在我的数据框(89列)中,我有4个具有负值的值,如下图所示。

![1]:https://i.stack.imgur.com/ZFF0U.png

所以我想知道如何对数据框的特定列进行突变,以使它们的值变为正值(绝对值)。

非常感谢

解决方法

这里是一个选择:

library(dplyr)
your_data %>%
  mutate(across(c("DAYS_BIRTH","DAYS_EMPLOYED","DAYS_REGISTRATION","DAYS_ID_PUBLISH"),abs))

根据要突变的列和要离开的列,也许可以使用更简单的选择助手,例如mutate(across(starts_with("DAYS"),abs))

,

一般解决方案:

library(dplyr)
data %>% mutate_if(function(x) all(x<0),function(x) abs(x))