Я хочу объединить два кадра данных, сохраняя исходный порядок строк одного из них (df.2
в примере ниже).Объединить два кадра данных при сохранении исходного порядка строк
Вот некоторые выборочные данные (все значения class
столбца определяются в обоих кадрах данных):
df.1 <- data.frame(class=c(1,2,3), prob=c(0.5,0.7,0.3))
df.2 <- data.frame(object=c('A','B','D','F','C'), class=c(2,1,2,3,1))
Если я:
merge(df.2,df.1)
Результат:
class object prob
1 1 B 0.5
2 1 C 0.5
3 2 A 0.7
4 2 D 0.7
5 3 F 0.3
Если я добавлю sort=FALSE
:
merge(df.2,df.1, sort=F)
Результат:
class object prob
1 2 A 0.7
2 2 D 0.7
3 1 B 0.5
4 1 C 0.5
5 3 F 0.3
То, что я хотел бы это:
class object prob
1 2 A 0.7
2 1 B 0.5
3 2 D 0.7
4 3 F 0.3
5 1 C 0.5
Проблема не определена. Что, если у вас в объединенном результате больше или меньше строк, чем df.2? – agstudy
Невозможно, потому что я использую df.2 как первую переменную в функции слияния ... – DJack
Нет. Это неправильно. все еще плохо определено. возьмем случай, если у вас есть класс в df; 2, который не существует в df.1. Например: 'df.2 <-data.frame (object = c ('A', 'B', 'D', 'F', 'C'), class = c (2,1,2,4,1)) ' – agstudy