根据行名匹配两个数据帧并添加 NA
Matching two dataframes according to rowname and adding NA
随着时间的推移,我有 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
我想根据行名进行匹配,如果在该观察处没有值,则添加一个缺失值
当在 dataframe/observation 3 上引入变量时,观察 1 和 2
应该有一个 NA
rbind、merge、rbind.fill 等对我没有帮助
谢谢
希望这不是一个常见问题
我认为 dplyr
包中的 full_join
函数可以帮助您:
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)
这是 reduce
和 full_join
的一个选项,将数据集放在 list
中
library(purrr)
library(dplyr)
list(a, b, c) %>%
reduce(full_join, by = "id")
随着时间的推移,我有 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
我想根据行名进行匹配,如果在该观察处没有值,则添加一个缺失值 当在 dataframe/observation 3 上引入变量时,观察 1 和 2
应该有一个 NArbind、merge、rbind.fill 等对我没有帮助
谢谢 希望这不是一个常见问题
我认为 dplyr
包中的 full_join
函数可以帮助您:
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)
这是 reduce
和 full_join
的一个选项,将数据集放在 list
library(purrr)
library(dplyr)
list(a, b, c) %>%
reduce(full_join, by = "id")