从R中数据帧中的较小列中减去较大列
我有下面的输入,我想减去两列,但我想总是从最高值中减去最低值。 因为我不希望结果是负值,有时最高值在第一列(PaternalOrgin)中,有时在第二列(MaternalOrigin)中 输入:从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
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))