2015-04-17 3 views
1

Допустит, у меня есть два dataframes а и хуг:Сортировать один dataframe на основе другого dataframe

abc 
batch_id file_number 
1   23.OH3 
1   28.OG2 
2   28.OI1 
2   40.OE1 

xyz 
file_number 
28.OI1 
23.OH3 
40.OE1 
28.OG2 

Как я могу сортировать xyz$file_number основанные на abc$file_number

+4

Неясно, каков ожидаемый результат. Возможно, 'xyz [match (abc $ file_number, xyz $ file_number) ,, drop = FALSE]' – akrun

ответ

1

, если вы уверены, что таблицы имеют одинаковое количество строк ...

order_vec <- order(xyz$filenumber) 
abc[order_vec,] 
+0

вы хотели использовать 'order_vec' во второй строке кода? Кроме того, даже с этим не уверен, что на самом деле то, что ОП просит (см. Комментарий @ akrun) – BrodieG

+0

Вы полностью правы ... Исправлено. Я тоже не был уверен, но я догадался :-) –

0

Try:

order.index <- sapply(xyz$filenumber, function(x) which(abc$file_number==x)) 
xyz$file_number[order.index] 
Смежные вопросы