R/data_transform_deriv.R

#' derived weighted characteristics to represent tract/vertex neighborhood at points in time & change over time
library(timeNet)
library(missing)

setwd("")
df.file1 = "" 
df.file2 = "" 
adj_mat.file = ""
df.pop = read.csv(df.file1)
df.comm = read.csv(df.file2)
adj_mat = read.csv(adj_mat.file) #adjacency matrix
rownames(adj_mat) = as.numeric(adj_mat[,1])
colnames(adj_mat) = as.numeric(substr(colnames(adj_mat), 2, nchar(colnames(adj_mat))))
am = adj_mat[, 2:ncol(adj_mat)]
am = am[order(rownames(am)), order(colnames(am))]
am = as.matrix(am)
#isSymmetric.matrix(am)

t = 'year'
id = 'trtid10'
valid_ids.pop = (unique( df.pop[, id]))
valid_ids.comm = (unique( df.comm[, id]))
id_t = c(id,t)
vars = c("hinc", "ppov", "pfb", "punemp", "pnhblk", "phisp", "pasian", 
         "pop", "phys_act", "healthy_foods", "nFlagged", "nBusinesses", 
         "tr_size", "nBusinesses_pa", "nBusinesses_hf")
df.pop = df.pop[,colnames(df.pop) %in% c(id_t,vars, paste(vars,'c',sep='_'))]
df.comm = df.comm[,colnames(df.comm) %in% c(id_t,vars, paste(vars,'c',sep='_'))]
no_nb_tracts = c(36005051600, 36081091601, 36081107201,36005000100) # tracts w/o neighbors: i.e. islands
df.pop = df.pop[! df.pop[,id] %in% no_nb_tracts,]
df.comm = df.comm[! df.comm[,id] %in% no_nb_tracts,]

wl_pop = c('hinc', 'ppov', 'pfb', 'punemp', 'pnhblk', 'phisp', 'pasian') #predictors to match w/ weighting variables
wl_pop_c = c(paste(wl_pop, 'c', sep = '_'))
wl_comm1 = c('phys_act', 'healthy_foods', 'nFlagged', 'nBusinesses')
wl_comm1_c = c(paste(wl_comm1, 'c', sep = '_'))
wl_comm2 = c('phys_act', 'healthy_foods', 'nFlagged', 'nBusinesses_pa', 'nBusinesses_hf')
wl_comm2_c = c(paste(wl_comm2, 'c', sep = '_'))
wt_vars.comm = c('pop','pop_c','nBusinesses_pa','nBusinesses_pa_c','nBusinesses_hf','nBusinesses_hf_c')
wt_vars.pop = c('pop','nBusinesses','nBusinesses_c')
to_wt.comm = list(wl_pop, wl_pop_c, wl_comm2, wl_comm2_c, wl_comm2, wl_comm2_c)
to_wt.pop = list(wl_pop, wl_comm1, wl_comm1_c)

df.pop = df.pop[order(df.pop[,id]),]
df.comm = df.comm[order(df.comm[,id]),]
pop.nb = nb_summary(data = df.pop, id = id, wts = wt_vars.pop, to_wt = to_wt.pop, t_var = t, adj_mat = am)
comm.nb = nb_summary(data = df.comm, id = id, wts = wt_vars.comm, to_wt = to_wt.comm, t_var = t, adj_mat = am)
pop = merge(df.pop, pop.nb, by = c(id, t))
comm = merge(df.comm, comm.nb, by = c(id, t))
davewutchiett/nets_demo_spatial_dynamics documentation built on May 25, 2019, 4:22 p.m.