如何使用几个数据框填充空白数据

时间:2019-06-03 21:46:09

标签: r tidyverse

我有两个数据帧,如下所示:

df1<- read.table( text="id	time	group	class 	income
  12	NA	NA	NA	NA
  17	NA	NA	NA	NA
                   19	NA	NA	NA	NA
                   36	NA	NA	NA	NA
                  14	NA	NA	NA	NA
                  15	NA	NA	NA	NA
                   8	NA	NA	NA	NA
                   22	NA	NA	NA	NA
                   33	NA	NA	NA	NA
                    11	NA	NA	NA	NA
                  ",h=T)

第二个数据帧如下:

df2<- read.table( text="id	time	group	class 	income age
17	3	A	1	2	12
11	6	A	3	12	11
36	9	E	2	11	23
19	19	E	2	13	13
8	23	M	2	14	14
15	11	M	1	16	13
12	3	P	1	15	15
14	3	Q	2	13	13
33	4	Z	3	19	13
22	5	G	3	20	11",h=T)

我想使用ID获取下表

df3<- read.table( text="id	time	group	class 	income

12	23	P	1	15
17	3	A	1	2
19	3	E	2	13
36	5	E	2	11
14	3	Q	2	13
15	3	M	1	16
8	23	M	2	14
22	5	G	3	20
33	4	Z	3	19
11	6	A	3	12",h=T)

很抱歉,但我未能找到一些可能的解决方案来展示我的尝试。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这是一个dplyr解决方案,假设您希望从iddf1的顺序以及从df2来的大部分数据:

library(dplyr)
df1 %>% 
  select(id) %>%
  left_join(df2) %>%
  select(-age)

Joining, by = "id"
   id time group class income
1  12    3     P     1     15
2  17    3     A     1      2
3  19   19     E     2     13
4  36    9     E     2     11
5  14    3     Q     2     13
6  15   11     M     1     16
7   8   23     M     2     14
8  22    5     G     3     20
9  33    4     Z     3     19
10 11    6     A     3     12