如何将R数据帧中的负值转换为正值?

有时我们需要使用绝对值,但是数据集中很少有负值,因此,我们必须将它们转换为正值。这可以通过使用abs函数来完成。例如,如果我们有一个包含许多列的数据帧df,并且每列都有一些负值,那么仅使用abs(df)就可以将这些值转换为正值。

示例

请看以下数据帧-

set.seed(41)
x1<-sample(-1:1,20,replace=TRUE)
x2<-sample(-5:1,20,replace=TRUE)
df1<-data.frame(x1,x2)
df1

输出结果

  x1 x2
1  1 -2
2 -1 -4
3  0  1
4  0  0
5 -1 -2
6  0   0
7  0  -4
8  0  -4
9   0 -2
10  1 -2
11  0 -1
12  1 -3
13 -1 -5
14  -1 0
15  0 -3
16 -1 -3
17  0 -5
18 -1 -2
19 -1 -5
20 -1 -4

将df1中的所有值转换为正值-

示例

> abs(df1)

输出结果

  x1 x2
1  1 2
2  1 4
3  0 1
4  0 0
5  1 2
6  0 0
7  0 4
8  0 4
9  0 2
10 1 2
11 0 1
12 1 3
13 1 5
14 1 0
15 0 3
16 1 3
17 0 5
18 1 2
19 1 5
20 1 4

让我们看另一个例子-

示例

y1<-sample(-10:10,20,replace=TRUE)
y2<-sample(-100:1,20)
y3<-sample(-100:-91,20,replace=TRUE)
y4<-sample(c(-100,-50,0,50,100),20,replace=TRUE)
df2<-data.frame(y1,y2,y3,y4)
df2

输出结果

   y1  y2 y3  y4
1   8 -12 -99 100
2  -2 -37 -93 -50
3  -5 -85 -93 -100
4   6 -16 -93   0
5   2 -51 -91 50
6  -5 -50 -94 100
7   0 -38 -92 100
8  -3 -20 -95 -50
9   1 -42 -96 100
10 -8 -31 -94 -50
11 -4 -75 -100 0
12 -5 -80 -94 100
13  0 -1  -95   0
14  2 -99 -99  50
15  9 -45 -97 -50
16 -6 -79 -93  50
17 -2 -52 -94  0
18  9 -82 -96  50
19  8 -32 -95  0
20  4 -11 -99 -100

将df2中的所有值转换为正值-

示例

abs(df2)

输出结果

  y1 y2 y3 y4
1  8 12 99 100
2  2 37 93 50
3  5 85 93 100
4  6 16 93 0
5  2 51 91 50
6  5 50 94 100
7  0 38 92 100
8  3 20 95 50
9  1 42 96 100
10 8 31 94 50
11 4 75 100 0
12 5 80 94 100
13 0 1 95 0
14 2 99 99 50
15 9 45 97 50
16 6 79 93 50
17 2 52 94 0
18 9 82 96 50
19 8 32 95 0
20 4 11 99 100