从R中数据帧中的较小列中减去较大列

从R中数据帧中的较小列中减去较大列,r,dataframe,subtraction,R,Dataframe,Subtraction,我有下面的输入,我想减去两列,但我想总是从最高值中减去最低值。 因为我不希望结果是负值,有时最高值在第一列(PaternalOrgin)中,有时在第二列(MaternalOrigin)中 输入: df <- PaternalOrigin MaternalOrigin 16 20 3 6 11 0 1 3 1 4 3 11 df我们可以用a

我有下面的输入,我想减去两列,但我想总是从最高值中减去最低值。 因为我不希望结果是负值,有时最高值在第一列(PaternalOrgin)中,有时在第二列(MaternalOrigin)中

输入:

df <- PaternalOrigin MaternalOrigin
16             20
3              6
11              0
1              3
1              4
3             11

df我们可以用
abs来包装

transform(df, Results = abs(PaternalOrigin - MaternalOrigin))
#     PaternalOrigin MaternalOrigin Results
#1             16             20       4
#2              3              6       3
#3             11              0      11
#4              1              3       2
#5              1              4       3
#6              3             11       8

或者我们可以将其分配给“结果”

df$Results <- with(df, abs(PaternalOrigin - MaternalOrigin))

或使用
dplyr

library(dplyr)
df %>%
    mutate(Results = abs(PaternalOrigin - MaternalOrigin)) 
df$Results <- with(df, abs(PaternalOrigin - MaternalOrigin))
library(data.table)
setDT(df)[, Results := abs(PaternalOrigin - MaternalOrigin)]
library(dplyr)
df %>%
    mutate(Results = abs(PaternalOrigin - MaternalOrigin))