Сопоставление двух кадров данных в соответствии с именем строки и добавление NA - PullRequest
3 голосов
/ 20 сентября 2019

У меня есть 3 кадра данных с неодинаковыми значениями для переменной во времени:

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

dataframe_a

  time_1
a    1
b    2
c    3
d    4

dataframe_b

   time_2
a    1
c    3
d    4
e    2

dataframe_c

 time_3
a    1
b    3
d    4
e    2

и хочу кадр данных, такой как:

  time_1 time_2 time_3
a    1      1       1
b    3     NA       3
c    4      3       NA
d    2      4       4
e    NA     2       2

Я хочу сопоставить по имени строкии добавьте пропущенное значение, если в этом наблюдении нет значения. Когда переменная введена в фрейм данных / наблюдение 3, для наблюдения 1 должен быть установлен NA, а 2

rbind, merge, rbind.fill и т. д. не являютсяпомогая мне

Спасибо, надеюсь, это не общий вопрос

Ответы [ 2 ]

3 голосов
/ 20 сентября 2019

Вот один вариант с reduce и full_join после помещения наборов данных в list

library(purrr)
library(dplyr)
list(a, b, c) %>%
      reduce(full_join, by = "id")
0 голосов
/ 20 сентября 2019

Я думаю, что функция full_join из пакета dplyr может помочь вам:

a <- data.frame(id = c("a","b","c","d"),time_1 = 1:4)
b <- data.frame(id = c("a","c","d","e"),time_2 = c(1,3,4,2))
c <- data.frame(id = c("a","b","d","e"),time_3 = c(1,3,4,2))

require(dplyr)
d <- full_join(a,b,by = "id")
full_join(d,c)
...