Я работаю с df1
, который содержит 180K строк и 27 факторов. Я использовал 3 фактора в слиянии с df2
(43K obs, 10 факторов, 3 фактора совпадают с df1
). В df1
строки представляют собой наблюдения, повторяющиеся в течение нескольких месяцев в течение нескольких лет для TrapLines
и TrapNum
. С TrapLines
и TrapNum
связано 3393 уникальных уровня. В df2
, Shade
меняется в зависимости от месяца для TrapLine
и Trapnum
: для каждой записи TrapLine
/ Trapnum
существует 12 значений Shade
. В df2
есть 3268 уникальных уровней, связанных с Trapline
/ Trapnum
. Я хочу объединить (если это правильный процесс) df1
и df2
так, чтобы ежемесячные данные Shade
были связаны с правильными Trapline
/ TrapNum
в df1
.
df1 :
TrapLine TrapNum Date Month_num
A24 D101 1-1-2018 1
A24 D101 2-13-2017 2
A24 D102 3-30-2017 3
A24 D102 4-10-2019 4
A24 D103 4-10-2019 4
A24 D103 5-15-2016 6
et c.
df2:
TrapLine TrapNum Shade Month Month_num
A24 D101 217 Jan 1
A24 D101 201 Feb 2
A24 D101 172 Mar 3
A24 D102 145 Mar 3
A24 D102 97 Apr 4
A24 D102 59 May 5
et c.
Я использовал следующий код:
df3 <- merge (df1, df2, by c("TrapLine", "TrapNum", "Month_num"))
Однако в процессе я теряю 40К наблюдений из df1
! Я не могу объяснить, что произошло: я бы подумал, что если бы не было совпадений между TrapLine
/ TrapNum
, значения Shade
были бы установлены на NA
или тому подобное, не то, чтобы наблюдения были потеряны совсем. Может ли кто-нибудь помочь мне понять, что произошло, и какой процесс можно использовать, чтобы я сохранил все наблюдения (позже я побеспокоюсь об удалении наблюдений без Shade!). Спасибо за ваше время и внимание. Ура, Дуг