Combinação de conjuntos de dados (novas variáveis)

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!