Se deseja adicionar apenas novas variáveis a um conjunto de dados, você também pode usar full_join()
para isso. Por exemplo, temos outro conjunto de dados de Panem que inclui uma nova pontuação social introduzida por pessoa. Agora queremos adicionar esses dados ao conjunto de dados PSS. Esses dados estão armazenados separadamente no conjunto sp
e usam a mesma variável de ID que corresponde à variável de ID do conjunto de dados pss
. Vamos agora adicionar os pontos sociais ao conjunto de dados pss
usando full_join()
. Primeiro, vamos dar uma olhada nos dois conjuntos de dados:
head(sp)
## socialpoints id
## 1 88.00907 10000
## 2 90.38817 10001
## 3 88.43383 10002
## 4 92.27890 10003
## 5 93.31521 10004
## 6 89.57225 10005
head(pss)
## idno district gndr agea edu wkhtot income stfdem stfeco
## 1 10000 Distrikt 1 male 41 ES-ISCED IV 34 7th decile 7 6
## 2 10001 Distrikt 1 male 65 ES-ISCED II 20 6th decile 8 7
## 3 10002 Distrikt 1 male 48 ES-ISCED IV 27 7th decile 6 6
## 4 10003 Distrikt 1 female 49 ES-ISCED V 30 6th decile 5 4
## 5 10004 Distrikt 1 female 48 ES-ISCED IV 29 5th decile 4 5
## 6 10005 Distrikt 1 female 64 ES-ISCED V 30 6th decile 6 6
## trstprl trstprt trstplt trstlgl lrscale
## 1 3 5 4 6 4
## 2 5 5 5 4 3
## 3 4 4 6 5 6
## 4 2 7 4 3 6
## 5 6 6 6 6 2
## 6 1 3 2 4 7
Embora ambos os conjuntos de dados tenham uma variável de ID, as colunas têm nomes diferentes. Podemos especificar isso novamente no argumento by
, como fizemos anteriormente. Desta vez, vamos primeiro ajustar rapidamente o nome da coluna em um dos conjuntos de dados. Para isso, usamos simplesmente rename()
. A lógica na função é novo nome = nome antigo
.
sp <- sp %>%
rename(idno = id)
head(sp)
## socialpoints idno
## 1 88.00907 10000
## 2 90.38817 10001
## 3 88.43383 10002
## 4 92.27890 10003
## 5 93.31521 10004
## 6 89.57225 10005
Agora que os nomes das colunas estão iguais, podemos mesclar os conjuntos de dados.
pss <- pss %>%
full_join(
sp,
by = "idno"
)
head(pss)
## idno district gndr agea edu wkhtot income stfdem stfeco
## 1 10000 Distrikt 1 male 41 ES-ISCED IV 34 7th decile 7 6
## 2 10001 Distrikt 1 male 65 ES-ISCED II 20 6th decile 8 7
## 3 10002 Distrikt 1 male 48 ES-ISCED IV 27 7th decile 6 6
## 4 10003 Distrikt 1 female 49 ES-ISCED V 30 6th decile 5 4
## 5 10004 Distrikt 1 female 48 ES-ISCED IV 29 5th decile 4 5
## 6 10005 Distrikt 1 female 64 ES-ISCED V 30 6th decile 6 6
## trstprl trstprt trstplt trstlgl lrscale socialpoints
## 1 3 5 4 6 4 88.00907
## 2 5 5 5 4 3 90.38817
## 3 4 4 6 5 6 88.43383
## 4 2 7 4 3 6 92.27890
## 5 6 6 6 6 2 93.31521
## 6 1 3 2 4 7 89.57225
E você também conseguiu! Agora vamos para o próximo pacote do tidyverse: tidyr
!