将dataframe列中的负值更改为绝对值

时间:2014-03-10 16:44:37

标签: r dataframe

我有data.frame这样:

    Col1   Col2   Col3   Col4      Col5      Col6
1   1982      0      0   -211       107         0
2   4412      0    989      0       296         0
3      0  -5051      0   -267       389       920
4      0  -2983      0   -215         0      1639
5      0  -1326      0   -861         0         0
6   3722      0     89      0       243     13349

如何将负值更改为绝对值?

3 个答案:

答案 0 :(得分:30)

abs(dat)

其中dat是数据框的名称。

答案 1 :(得分:5)

您可以执行以下操作(假设您的原始data.frame被称为“mydf”):

mydf[] <- lapply(mydf, abs)
mydf
#   Col1 Col2 Col3 Col4 Col5  Col6
# 1 1982    0    0  211  107     0
# 2 4412    0  989    0  296     0
# 3    0 5051    0  267  389   920
# 4    0 2983    0  215    0  1639
# 5    0 1326    0  861    0     0
# 6 3722    0   89    0  243 13349

答案 2 :(得分:0)

如果您的数据框同时包含numericcharacter列:

#dataframe is your original dataframe. 

abs.dat <- data.frame %>% 
  dplyr::select(where(is.numeric)) %>%
  abs()

仅选择数字列。