R — сохранить порядок при использовании операторов сопоставления (%in%)

Я использую операторы сопоставления для получения значений, которые появляются в матрице, из отдельного фрейма данных. Однако результирующая матрица имеет значения в том порядке, в котором они появляются во фрейме данных, а не в исходной матрице. Есть ли способ сохранить порядок исходной матрицы с помощью оператора сопоставления?

Вот быстрый пример:

vec=c("b","a","c"); vec

df=data.frame(row.names=letters[1:5],values=1:5); df

df[rownames(df) %in% vec,1]

Получается > [1] 1 2 3, что является порядком "a" "b" "c"появляется в данных Рамка. Однако я хотел бы сгенерировать >[1] 2 1 3в том порядке, в котором они появляются в исходном векторе.

Спасибо!

6
задан Josh O'Brien 14 May 2012 в 22:11
поделиться