Используя базу R
, мы упорядочиваем сначала по столбцу min
, затем по 1-му столбцу:
df[with(df,order(pmin(Col1,Col2),pmax(Col1,Col2),Col1)),]
# Col1 Col2 Value
# 1 A B 90
# 3 B A 50
# 4 C D 50
# 2 E F 90
# 5 F E 90
Спасибо @akrun за подсказку.
tidyverse
решение будет:
library(dplyr)
df %>% arrange(pmin(Col1,Col2),pmax(Col1,Col2),Col1)
предыдущее решение:
df[order(
apply(df[1:2],1,function(x) paste(sort(x),collapse="")),
df$Col1),]
данные
df <- read.table(text=
"Col1 Col2 Value
A B 90
E F 90
B A 50
C D 50
F E 90",h=T,strin=F
)