[R-br] Selecionar variáveis conforme linhas
Roney Fraga Souza
roneyfraga em gmail.com
Domingo Agosto 25 13:26:01 BRT 2013
Caros,
Considerando os dados:
#------------------------------
# Carregar arquivo csv no Dropbox
#install.packages('repmis')
library(repmis)
FinURL <- paste0("https://dl.dropboxusercontent.com/u/61883020/2013-08-25-r-br.csv")
data <- repmis::source_data(FinURL, sep = ",", header = TRUE)
dim(data)
data
#------------------------------
pessoa pessoa.grupo g.1 g.2 g.3 g.4 tc
1 a 3 360 913 1407 674 3354
2 b 2 235 693 588 384 1900
3 c 4 355 435 285 524 1599
4 e 3 37 129 258 80 504
5 f 1 317 40 14 95 466
6 g 2 17 216 88 27 348
7 h 2 53 155 73 59 340
8 i 4 19 71 99 123 312
9 j 4 177 19 9 97 302
10 l 2 82 84 27 74 267
11 m 4 31 54 23 155 263
12 n 4 22 53 70 113 258
13 o 4 37 37 23 153 250
14 p 1 144 29 49 25 247
15 q 3 8 49 157 17 231
16 r 2 27 138 33 27 225
17 s 2 32 82 25 77 216
18 t 3 12 16 183 3 214
19 u 4 0 54 33 90 212
20 v 3 0 0 135 11 211
#------------------------------
temos a seguinte situação, a pessoa 'a' pertence ao grupo '3', variável 'pessoa.grupo', e se relacionou '360' vezes com pessoas do grupo 1, variável 'g.1', '913' vezes com pessoas do grupo 2, variável 'g.2', '1407' vezes com pessoas do grupo 3, variável 'g.3', '674' vezes com pessoas do grupo 4, variável 'g.4', tendo por fim se relacionado '3354' vezes no total, variável 'tc'.
Considerando os dados acima estou com a seguintes dúvidas:
1) Como criar uma coluna com o valor da relação de cada pessoa apenas com pessoas de seu grupo de origem?
Exemplo: a pessoa 'e' pertence ao grupo '3', logo, seu valor é referente a variável 'g.3', que é '258'. Já a pessoa 'f', pertence ao grupo '1', seu valor deverá ser referente a 'g.1', '317'.
Em outras palavras, preciso criar uma coluna mantendo o valor de uma das 4 variáveis ('g.1','g.2','g.4' e 'g.4'), respeitando o grupo que a pessoa pertence, que esta na variável 'pessoa.grupo'.
2) Como estabelecer a proporção das ligações de uma pessoa para seu grupo sobre as ligações para os demais grupos?
Exemplo: A pessoa 'b', que pertence ao grupo '2', com o qual vez '693' ligações, variável 'g.2', e suas ligações com pessoas de outros grupos pode ser obtida nas soma das variáveis 'g.1','g.3' e 'g.4'.
3) Por fim, desejo obter a média da quantidade de ligações de uma pessoa considerando o total de grupos que ela tem ligações.
Exemplo: A pessoa 'v', tem ligações apenas com pessoas dos grupos 3 e 4, variáveis 'g.3' e 'g.4', logo a média de duas ligações será ((0+0+135+11)/2). Já a pessoa 'u', tem ligações com pessoas de 3 grupos, então a média seria ((0+54+33+90)/3).
Bem, essas são as dúvidas. Tentei utilizar regex e paste, mas meus conhecimentos básicos não foram suficientes. Minha base completa tem 16 categorias, 'g.1' a 'g.16', e 4000 linhas.
Desde já grato pela atenção.
Roney
Mais detalhes sobre a lista de discussão R-br