Как связать разные dfs с общими переменными, но с разными значениями в общих переменных, сохраняя все значения различных общих переменных - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть два фрейма данных, в которых пропущенные значения не вводятся как NA, но их просто нет.Это выглядит примерно так.

df1

      id phase assess_pday totasses_pphase
   <dbl> <dbl>       <dbl>           <dbl>
 1     1     1           1               1
 2     1     1           3               3
 3     1     1           2               5
 4     1     1           3               6
 5     1     1           1               7
 6     1     2           3               3
 7     1     2           1               7
 8     1     2           2               8
 9     1     2           3               9
10     2     1           1               1
11     2     1           3               3
12     2     1           2               5
13     2     1           3               9
14     2     2           3               3
15     2     2           2               5
16     2     2           3               6
17     2     2           1               7
18     2     2           2               8
19     2     2           3               9
20     3     1           1               1
21     3     1           2               2
22     3     1           1               4
23     3     1           3               6
24     3     1           2               8
25     3     1           3               9
26     3     2           3               3
27     3     2           2               5
28     3     2           3               9
29     4     1           1               1
30     4     1           2               2
31     4     1           3               6
32     4     1           1               7
33     4     1           2               8
34     4     1           3               9
35     4     2           1               1
36     4     2           3               3
37     4     2           1               7
38     4     2           2               8
39     4     2           3               9

df2

      id phase assess_pday totasses_pphase score
   <dbl> <dbl>       <dbl>           <dbl> <dbl>
 1     1     1           1               1     3
 2     1     1           1               2     2
 3     1     2           1               1     1
 4     1     2           1               2     0
 5     2     1           1               1     0
 6     2     1           1               2     1
 7     2     2           1               1     0
 8     2     2           1               2     0
 9     3     1           1               1     4
10     3     1           1               2     3
11     3     2           1               1     3
12     3     2           1               2     3
13     4     1           1               1     2
14     4     1           1               2     2
15     4     2           1               1     1
16     4     2           1               2     1

Чтобы дать некоторый контекст: это интенсивное продольное исследование, состоящее из двух этапов, в каждом из которых каждый участник оценивался несколько раз в день.Перед каждым этапом проводилась перекрестная оценка, чтобы узнать уровень переменной.df1 относится к продольной части, а df2 - к поперечной части.Переменные: id означает идентификатор.phase означает либо фазу 1, либо фазу 2. assess_pday означает номер оценки в течение этого дня (максимум 3).totasses_pphase означает номер этой оценки в течение периода (максимум 12).оценка означает оценку по переменной

Проблема заключается в том, что я не могу присоединиться к столбцу оценки с использованием идентификатора и totasses_pphase в качестве ключей, поскольку некоторые значения totasses_pphase в df1 отсутствуют.Итак, я хочу добавить 1 и 2 из totasses_pphase, которые отсутствуют в df1, а затем присоединиться к столбцу оценок df2 на основе идентификатора и totasses_pphase.

Iпопытался использовать полную функцию:

df3 <- complete(df1, nesting(id), totasses_pphase = 1:2)

Но это не работает, как я хочу.

...