Это действительно зависит от того, как на самом деле выглядят ваши данные.Как это выглядит сейчас, вам нужен только один столбец для сортировки, и это легко сделать с помощью:
x2[order(match(x2[,1],x1[,1])),]
Если вам нужно более одного столбца, это становится немного сложнее.Вам нужно будет указать, по какой из них вы хотите сначала отсортировать, и по какой секунде, например:
x1 <- data.frame(a=rep(1:3,2), b=rep(letters[2:4],each=2), c=rnorm(6))
x2 <- data.frame(a=c(3,3,2), b=c("c", "d", "b"), d=rnorm(3))
x2[order(match(
paste(x2[,1],x2[,2]),
paste(x1[,1],x1[,2]))
),]
. Эта сортировка выполняется сначала по первому столбцу, а затем по второму.Вы должны иметь в виду, что вам нужны все комбинации в x2, а также в x1.T