#r #merge
#r #слияние
Вопрос:
как R будет обрабатывать слияние, если by не определен. Для других языков, кажется, требуется by , но в r, похоже, мы можем это сделать new_df<-merge(df1, df2)
. какое слияние мы получим от этого? это то же самое , что и то , что мы определяем by=
? Действительно ли нам нужно выяснить, какую переменную величину нам нужно использовать для by? или R достаточно умен и выберет один из них для нас?
Комментарии:
1. По умолчанию
merge()
будут использоваться все столбцы с одинаковыми именами в обоих фреймах данных.
Ответ №1:
смотрите справку ( ?base::merge
): по умолчанию, by = intersect(names(x), names(y))
— т.е. Он будет искать имена столбцов, общие для двух фреймов данных
Ответ №2:
Если вы это сделаете new_df <- merge(df1, df2)
, выполняется внутреннее объединение, и by
по умолчанию выбирается как общие имена столбцов столбцов в df1
и df2
.
Вы можете найти эти спецификации в ?merge
.
merge(x, y, by = intersect(names(x), names(y)),
by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all,
sort = TRUE, suffixes = c(".x",".y"), no.dups = TRUE,
incomparables = NULL, ...)
Так что по умолчанию by
intersect(names(x), names(y))
. Также это указано в Details
разделе .
По умолчанию фреймы данных объединяются по столбцам с именами, которые они оба имеют