Как заполнить пустые данные, используя несколько фреймов данных - PullRequest
0 голосов
/ 04 июня 2019

У меня есть два кадра данных следующим образом:

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)

Я хочу получить следующую таблицу, используя идентификаторы

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 Ответ

1 голос
/ 04 июня 2019

Вот решение dplyr, предполагающее, что вы хотите порядка id от df1 с большинством данных от 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...