Обмен всеми ключами: пары значений для литерала с буквами в PyCharm [duplicate]

Используя функцию merge и ее необязательные параметры:

Внутреннее соединение: merge(df1, df2) будет работать для этих примеров, поскольку R автоматически присоединяется к кадрам по именам общих переменных , но вы, скорее всего, захотите указать merge(df1, df2, by = "CustomerId"), чтобы убедиться, что вы соответствуете только по желаемым полям. Вы также можете использовать параметры by.x и by.y, если соответствующие переменные имеют разные имена в разных кадрах данных.

Внешнее соединение: merge(x = df1, y = df2, by = "CustomerId", all = TRUE)

Левый внешний: merge(x = df1, y = df2, by = "CustomerId", all.x = TRUE)

Правый внешний: merge(x = df1, y = df2, by = "CustomerId", all.y = TRUE)

Крест: merge(x = df1, y = df2, by = NULL)

Как и с внутренним соединением, вы, вероятно, захотите явно передать «CustomerId» в R в качестве сопоставимой переменной. Я думаю, что почти всегда лучше указывать идентификаторы, с которыми вы хотите объединиться; это безопаснее, если входные данные.кадры меняются неожиданно и легче читать позже.

Вы можете объединить несколько столбцов, указав by вектор, например, by = c("CustomerId", "OrderId").

Если имена столбцов для слияния не совпадают, вы можете указать, например, by.x = "CustomerId_in_df1", by.y = "CustomerId_in_df2" where CustomerId_in_df1 is the name of the column in the first data frame and CustomerId_in_df2` - это имя столбца во втором кадре данных. (Они также могут быть векторами, если вам нужно объединить несколько столбцов.)

52
задан 17 revs, 12 users 32% 8 April 2014 в 21:11
поделиться