Caso o banco de dados seja grande, um procedimento com um loop (for) pode acabar demorando. Aqui embaixo segue um código, apenas com atribuições simples (menos "elegante"...), mas que pode funcionar mais rápido,
# Número de relações dentro do próprio grupo
data$rel.grupo =NA
data$rel.grupo[data$pessoa.grupo == 1]=data$g.1[data$pessoa.grupo == 1]
data$rel.grupo[data$pessoa.grupo == 2]=data$g.2[data$pessoa.grupo == 2]
data$rel.grupo[data$pessoa.grupo == 3]=data$g.3[data$pessoa.grupo == 3]
data$rel.grupo[data$pessoa.grupo == 4]=data$g.4[data$pessoa.grupo == 4]
# Calculo da proporção de relações dentro do próprio grupo
data$prop.rel.grupo = data$rel.grupo/rowSums(data[,3:6], na.rm = TRUE, dims = 1)
# Média de relações (desconsiderando o valor zero)
data$rel.media = rowSums(data[,3:6], na.rm = TRUE)/rowSums(data[,3:6]>0)