объединение данных с разными кодами, но не удалось - PullRequest
0 голосов
/ 22 января 2019

Удивительно, но я попробовал три разных вида кодов, чтобы объединить две мои данные по двум переменным.Я также проверил тип данных и переменных, и уверен, что они все одинаковы.Вот коды, которые я использовал и не работал для слияния.

Первый код:

merge(data1,data2, 
    by.x = c(data1$Country, data1$Year), 
    by.y = c(data2$Country, data2$Year))

Второй код:

merge(data1,data2, 
    by = c("Country", "Year"))

Третий код:

merge(data1, data2, by.x="Country", by.y = "Year")

Я получил эту ошибку из всех этих кодов:

Ошибка в fix.by (by.x, x): 'by' должен указывать уникально допустимый столбец

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 22 января 2019

Прежде всего, вы должны рассмотреть Как создать отличный воспроизводимый пример R , в частности, советы о том, что делать, если вы не можете поделиться своими исходными данными.

Поскольку мы понятия не имеемкак на самом деле выглядят ваши данные, сложно предоставить конкретную помощь.Тем не менее, для работы над решением, я смоделирую некоторые фиктивные данные ниже и покажу, как объединить два data.frame на основе записей в двух столбцах:

set.seed(2018)
data1 <- data.frame(
    Country = sample(letters, 10),
    Year = sample(1:4, 10, replace = T),
    Value = sample(10))

data2 <- data.frame(
    Country = sample(letters, 10),
    Year = sample(1:4, 10, replace = T),
    Value = sample(10))

merge(data1, data2, by = c("Country", "Year"))
#  Country Year Value.x Value.y
#1       l    3       6       6

Или, если вы хотите сохранить строкиот каждого data.frame, у которого нет совпадений

merge(data1, data2, by = c("Country", "Year"), all = TRUE)
#   Country Year Value.x Value.y
#1        b    4       2      NA
#2        c    3       9      NA
#3        c    4      NA       3
#4        e    3       1      NA
#5        g    3      10      NA
#6        i    2       3      NA
#7        j    4       7      NA
#8        k    1      NA       1
#9        k    4       5      NA
#10       l    3       6       6
#11       m    2       8      NA
#12       r    3       4      NA
#13       a    3      NA       9
#14       d    4      NA       5
#15       q    1      NA      10
#16       t    1      NA       7
#17       v    4      NA       2
#18       w    3      NA       4
#19       x    4      NA       8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...