我有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和2应该有一个NA
rbind,merge,rbind.fill等对我没有帮助
谢谢 希望这不是一个普遍的问题
答案 0 :(得分:4)
在将数据集放入reduce
后,这是full_join
和list
的一个选项
library(purrr)
library(dplyr)
list(a, b, c) %>%
reduce(full_join, by = "id")
答案 1 :(得分:0)
我认为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)