У меня есть два data.frames в R, один из которых имеет два столбца, а другой из них имеет три столбца и где два столбца являются общими между два кадра. Рамка имеет такое же количество строк. Пример фреймов a и b приведен ниже. Мне нужно изменить порядок строк b, используя порядок строк в a. Обратите внимание, что в кадре b любая уникальная комбинация первых двух столбцов, id и lob, будет связана с уникальным значением в столбце val. Столбец id и lob, приведенный здесь, является фактором и символом, но я хотел бы, чтобы решение работало для любого типа данных.Переупорядочить один data.frame, используя два столбца из другого data.frame в R
Обратите внимание, что если бы мы рассмотрим случай, когда кадр праведный был столбец ID и кадр б только имел идентификатор и VAL столбцы, я бы сделать это с чем-то вроде
b[match(a$id,b$id),]
К сожалению, я m не уверен, как выполнить то же самое, когда мне нужно заказать по двум столбцам.
: с
id lob
1 1+ X
2 3 X
3 2 X
4 1 X
5 1 Y
6 1+ Y
7 1+ X
8 3 X
9 3 X
б:
id lob val
1 1+ X 1
2 1+ Y 9
3 1+ X 1
4 3 X 5
5 3 X 5
6 3 X 5
7 2 X 4
8 1 X 3
9 1 Y 2
Я хочу, чтобы получить это:
id lob val
1 1+ X 1
2 3 X 5
3 2 X 4
4 1 X 3
5 1 Y 2
6 1+ Y 9
7 1+ X 1
8 3 X 5
9 3 X 5
Является ли оно еще четким? Комбинация (id, lob), по-видимому, не однозначно определяет строку. – Aniko
Aniko. Здесь могут быть повторяющиеся строки, но это не должно быть проблемой, так как это не проблема, если вы хотите отсортировать вектор чисел с повторяющимися значениями. Обратите внимание, что для любого заданного (id, lob) кортежа будет только одно значение для val; то есть вы не можете иметь (1+, X, 5) и (1+, X, 3). Если бы это было не так, это было бы проблемой. – Abiel