Goal

Create alter relationship variable based on LISS alter ids.

Set

Packages and data import

#package
library(tidyverse)
#disable the scientific notation in R (else all the id's will be in scientific notation)
options(scipen = 999)

load("data/data-processed/liss_merged/liss_core_merged_V3_240624.Rdata")

Data prep

#extract the alter id variable from the lisscdn long file. 
liss_alters <- liss_long %>% 
  select(nomem_encr,
         survey_wave,
         starts_with("alter_id")) %>% 
  rename(alter_id.1 = alter_id_1, #replace alter sep _ with ., so we can use it in pivot
         alter_id.2 = alter_id_2,
         alter_id.3 = alter_id_3,
         alter_id.4 = alter_id_4,
         alter_id.5 = alter_id_5)

#reshape a long file with observations of alter in survey and egonet. 
alters_long <- liss_alters %>%
  pivot_longer(cols = starts_with("alter_id"),
               names_to = c("names", "alter"),
               values_to = "alter_id",
               names_pattern = "(.+)\\.(.+)")

Variable creation

#group by nomem_encr and alter id and count how many times an alter is member of network
#also calculate how many waves a member is part of the network.
alters_long <- alters_long %>% 
  group_by(nomem_encr, alter_id) %>% 
  mutate(rl_alter = ifelse(is.na(alter_id), NA, 1:n())) %>%
  ungroup()

Cleaning of data

#identify duplicate alters in a survey/ego combination. I will remove them from the analysis
duplicates <- alters_long %>% 
  group_by(nomem_encr, survey_wave) %>% 
  mutate(n_alter_wave = sum(!is.na(alter_id)),
         n_unique_alter = sum(!is.na(unique(na.omit(alter_id))))) %>% 
  ungroup() %>% 
  mutate(selection = as.numeric(n_unique_alter == n_alter_wave)) %>% 
  filter(selection == 0) %>% 
  select(nomem_encr) %>% 
  distinct() %>% 
  pull(nomem_encr)

#we remove 1597 ego's from the data
alters_long <- alters_long %>% 
  filter(!nomem_encr %in% duplicates)

Data export

#reshape into long file so we can can merge with LISS wide
alters_wide <- alters_long %>% 
  select(-names, -alter_id) %>% 
  pivot_wider(id_cols = c("nomem_encr", "survey_wave"), #first step of pivot
              names_from = "alter",
              names_prefix = "rl_alter",
              values_from = c("rl_alter")) %>% 
  pivot_wider(id_cols = "nomem_encr", #second step of pivot
              names_from = "survey_wave",
              values_from = 3:7,
              names_sep = ".")

#merge with liss wide (inner_join)
liss_wide <- liss_wide %>% 
  inner_join(alters_wide, 
            by = "nomem_encr")

#reshape data into liss_long.
liss_long <- liss_wide %>%
  pivot_longer(cols = 2:ncol(liss_wide), 
               names_to = c("measure", "survey_wave"),
               names_pattern = "(.+)\\.(.+)",
               values_to = "value") %>%
  pivot_wider(names_from = measure,
              values_from = value) %>% 
  mutate(survey_wave = as.numeric(survey_wave))

#clean global environment.
#only keep the wide and long files. 
rm(list=ls()[! ls() %in% c("liss_wide","liss_long")])

#save.image
save.image(file = "data/data-processed/liss_merged/lisscdn_afterrel_V4_240624.Rdata")
LS0tDQp0aXRsZTogIkxJU1MgYWx0ZXIgcmVsYXRpb25zIg0KYXV0aG9yOiAiVGhpam1lbiBKZXJvZW5zZSINCmRhdGU6ICJMYXN0IGNvbXBpbGVkIG9uIGByIGZvcm1hdChTeXMudGltZSgpLCAnJWQgJUIsICVZJylgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19kZXB0aDogMw0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGNvZGVfZm9sZGluZzogc2hvdw0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldCgNCiAgY2FjaGUgPSBUUlVFLA0KICBtZXNzYWdlID0gRkFMU0UsDQogIHdhcm5pbmcgPSBGQUxTRSwNCiAgcmVzdWx0cyA9ICJhc2lzIiwNCiAgZmlnLmFsaWduID0gImNlbnRlciINCikNCmBgYA0KDQojIEdvYWwNCg0KQ3JlYXRlIGFsdGVyIHJlbGF0aW9uc2hpcCB2YXJpYWJsZSBiYXNlZCBvbiBMSVNTIGFsdGVyIGlkcy4gDQoNCiMgU2V0DQojIyBQYWNrYWdlcyBhbmQgZGF0YSBpbXBvcnQNCg0KYGBge3IgcGFja2FnZXN9DQojcGFja2FnZQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpgYGANCg0KYGBge3IgZGF0YSBpbXBvcnR9DQojZGlzYWJsZSB0aGUgc2NpZW50aWZpYyBub3RhdGlvbiBpbiBSIChlbHNlIGFsbCB0aGUgaWQncyB3aWxsIGJlIGluIHNjaWVudGlmaWMgbm90YXRpb24pDQpvcHRpb25zKHNjaXBlbiA9IDk5OSkNCg0KbG9hZCgiZGF0YS9kYXRhLXByb2Nlc3NlZC9saXNzX21lcmdlZC9saXNzX2NvcmVfbWVyZ2VkX1YzXzI0MDYyNC5SZGF0YSIpDQpgYGANCg0KIyMgRGF0YSBwcmVwDQoNCmBgYHtyIGV4dHJhY3QgdmFyaWFibGUgYW5kIGRhdGFwcmVwfQ0KI2V4dHJhY3QgdGhlIGFsdGVyIGlkIHZhcmlhYmxlIGZyb20gdGhlIGxpc3NjZG4gbG9uZyBmaWxlLiANCmxpc3NfYWx0ZXJzIDwtIGxpc3NfbG9uZyAlPiUgDQogIHNlbGVjdChub21lbV9lbmNyLA0KICAgICAgICAgc3VydmV5X3dhdmUsDQogICAgICAgICBzdGFydHNfd2l0aCgiYWx0ZXJfaWQiKSkgJT4lIA0KICByZW5hbWUoYWx0ZXJfaWQuMSA9IGFsdGVyX2lkXzEsICNyZXBsYWNlIGFsdGVyIHNlcCBfIHdpdGggLiwgc28gd2UgY2FuIHVzZSBpdCBpbiBwaXZvdA0KICAgICAgICAgYWx0ZXJfaWQuMiA9IGFsdGVyX2lkXzIsDQogICAgICAgICBhbHRlcl9pZC4zID0gYWx0ZXJfaWRfMywNCiAgICAgICAgIGFsdGVyX2lkLjQgPSBhbHRlcl9pZF80LA0KICAgICAgICAgYWx0ZXJfaWQuNSA9IGFsdGVyX2lkXzUpDQoNCiNyZXNoYXBlIGEgbG9uZyBmaWxlIHdpdGggb2JzZXJ2YXRpb25zIG9mIGFsdGVyIGluIHN1cnZleSBhbmQgZWdvbmV0LiANCmFsdGVyc19sb25nIDwtIGxpc3NfYWx0ZXJzICU+JQ0KICBwaXZvdF9sb25nZXIoY29scyA9IHN0YXJ0c193aXRoKCJhbHRlcl9pZCIpLA0KICAgICAgICAgICAgICAgbmFtZXNfdG8gPSBjKCJuYW1lcyIsICJhbHRlciIpLA0KICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gImFsdGVyX2lkIiwNCiAgICAgICAgICAgICAgIG5hbWVzX3BhdHRlcm4gPSAiKC4rKVxcLiguKykiKQ0KDQpgYGANCg0KIyBWYXJpYWJsZSBjcmVhdGlvbg0KDQpgYGB7ciB2YXJpYWJsZSBjcmVhdGlvbn0NCiNncm91cCBieSBub21lbV9lbmNyIGFuZCBhbHRlciBpZCBhbmQgY291bnQgaG93IG1hbnkgdGltZXMgYW4gYWx0ZXIgaXMgbWVtYmVyIG9mIG5ldHdvcmsNCiNhbHNvIGNhbGN1bGF0ZSBob3cgbWFueSB3YXZlcyBhIG1lbWJlciBpcyBwYXJ0IG9mIHRoZSBuZXR3b3JrLg0KYWx0ZXJzX2xvbmcgPC0gYWx0ZXJzX2xvbmcgJT4lIA0KICBncm91cF9ieShub21lbV9lbmNyLCBhbHRlcl9pZCkgJT4lIA0KICBtdXRhdGUocmxfYWx0ZXIgPSBpZmVsc2UoaXMubmEoYWx0ZXJfaWQpLCBOQSwgMTpuKCkpKSAlPiUNCiAgdW5ncm91cCgpDQoNCg0KYGBgDQoNCiMjIENsZWFuaW5nIG9mIGRhdGEgDQoNCmBgYHtyIGNsZWFuIGRhdGF9DQojaWRlbnRpZnkgZHVwbGljYXRlIGFsdGVycyBpbiBhIHN1cnZleS9lZ28gY29tYmluYXRpb24uIEkgd2lsbCByZW1vdmUgdGhlbSBmcm9tIHRoZSBhbmFseXNpcw0KZHVwbGljYXRlcyA8LSBhbHRlcnNfbG9uZyAlPiUgDQogIGdyb3VwX2J5KG5vbWVtX2VuY3IsIHN1cnZleV93YXZlKSAlPiUgDQogIG11dGF0ZShuX2FsdGVyX3dhdmUgPSBzdW0oIWlzLm5hKGFsdGVyX2lkKSksDQogICAgICAgICBuX3VuaXF1ZV9hbHRlciA9IHN1bSghaXMubmEodW5pcXVlKG5hLm9taXQoYWx0ZXJfaWQpKSkpKSAlPiUgDQogIHVuZ3JvdXAoKSAlPiUgDQogIG11dGF0ZShzZWxlY3Rpb24gPSBhcy5udW1lcmljKG5fdW5pcXVlX2FsdGVyID09IG5fYWx0ZXJfd2F2ZSkpICU+JSANCiAgZmlsdGVyKHNlbGVjdGlvbiA9PSAwKSAlPiUgDQogIHNlbGVjdChub21lbV9lbmNyKSAlPiUgDQogIGRpc3RpbmN0KCkgJT4lIA0KICBwdWxsKG5vbWVtX2VuY3IpDQoNCiN3ZSByZW1vdmUgMTU5NyBlZ28ncyBmcm9tIHRoZSBkYXRhDQphbHRlcnNfbG9uZyA8LSBhbHRlcnNfbG9uZyAlPiUgDQogIGZpbHRlcighbm9tZW1fZW5jciAlaW4lIGR1cGxpY2F0ZXMpDQpgYGANCg0KIyBEYXRhIGV4cG9ydA0KDQpgYGB7ciBkYXRhIGV4cG9ydH0NCiNyZXNoYXBlIGludG8gbG9uZyBmaWxlIHNvIHdlIGNhbiBjYW4gbWVyZ2Ugd2l0aCBMSVNTIHdpZGUNCmFsdGVyc193aWRlIDwtIGFsdGVyc19sb25nICU+JSANCiAgc2VsZWN0KC1uYW1lcywgLWFsdGVyX2lkKSAlPiUgDQogIHBpdm90X3dpZGVyKGlkX2NvbHMgPSBjKCJub21lbV9lbmNyIiwgInN1cnZleV93YXZlIiksICNmaXJzdCBzdGVwIG9mIHBpdm90DQogICAgICAgICAgICAgIG5hbWVzX2Zyb20gPSAiYWx0ZXIiLA0KICAgICAgICAgICAgICBuYW1lc19wcmVmaXggPSAicmxfYWx0ZXIiLA0KICAgICAgICAgICAgICB2YWx1ZXNfZnJvbSA9IGMoInJsX2FsdGVyIikpICU+JSANCiAgcGl2b3Rfd2lkZXIoaWRfY29scyA9ICJub21lbV9lbmNyIiwgI3NlY29uZCBzdGVwIG9mIHBpdm90DQogICAgICAgICAgICAgIG5hbWVzX2Zyb20gPSAic3VydmV5X3dhdmUiLA0KICAgICAgICAgICAgICB2YWx1ZXNfZnJvbSA9IDM6NywNCiAgICAgICAgICAgICAgbmFtZXNfc2VwID0gIi4iKQ0KDQojbWVyZ2Ugd2l0aCBsaXNzIHdpZGUgKGlubmVyX2pvaW4pDQpsaXNzX3dpZGUgPC0gbGlzc193aWRlICU+JSANCiAgaW5uZXJfam9pbihhbHRlcnNfd2lkZSwgDQogICAgICAgICAgICBieSA9ICJub21lbV9lbmNyIikNCg0KI3Jlc2hhcGUgZGF0YSBpbnRvIGxpc3NfbG9uZy4NCmxpc3NfbG9uZyA8LSBsaXNzX3dpZGUgJT4lDQogIHBpdm90X2xvbmdlcihjb2xzID0gMjpuY29sKGxpc3Nfd2lkZSksIA0KICAgICAgICAgICAgICAgbmFtZXNfdG8gPSBjKCJtZWFzdXJlIiwgInN1cnZleV93YXZlIiksDQogICAgICAgICAgICAgICBuYW1lc19wYXR0ZXJuID0gIiguKylcXC4oLispIiwNCiAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJ2YWx1ZSIpICU+JQ0KICBwaXZvdF93aWRlcihuYW1lc19mcm9tID0gbWVhc3VyZSwNCiAgICAgICAgICAgICAgdmFsdWVzX2Zyb20gPSB2YWx1ZSkgJT4lIA0KICBtdXRhdGUoc3VydmV5X3dhdmUgPSBhcy5udW1lcmljKHN1cnZleV93YXZlKSkNCg0KI2NsZWFuIGdsb2JhbCBlbnZpcm9ubWVudC4NCiNvbmx5IGtlZXAgdGhlIHdpZGUgYW5kIGxvbmcgZmlsZXMuIA0Kcm0obGlzdD1scygpWyEgbHMoKSAlaW4lIGMoImxpc3Nfd2lkZSIsImxpc3NfbG9uZyIpXSkNCg0KI3NhdmUuaW1hZ2UNCnNhdmUuaW1hZ2UoZmlsZSA9ICJkYXRhL2RhdGEtcHJvY2Vzc2VkL2xpc3NfbWVyZ2VkL2xpc3NjZG5fYWZ0ZXJyZWxfVjRfMjQwNjI0LlJkYXRhIikNCg0KYGBgDQoNCg0KDQoNCg==


Copyright © 2024 Jeroense Thijmen