OI pessoal. Estou com uma base de dados imensa que quase estoura a memória do R e por isso, para
facilitar o entendimento de minha pergunta, suponha que a base de dados seja a
mtcars que existe no próprio R. Segue um pedaço dela abaixo.
> mtcars
mpg cyl disp hp drat
wt qsec vs am gear carb
Mazda RX4
21.0 6 160.0 110 3.90 2.620
16.46 0
1 4 4
Mazda RX4 Wag
21.0 6 160.0 110 3.90 2.875
17.02 0
1 4 4
Datsun 710
22.8 4 108.0 93 3.85 2.320 18.61 1
1 4 1
Hornet 4 Drive
21.4 6 258.0 110 3.08 3.215
19.44 1
0 3 1
Hornet Sportabout
18.7 8 360.0 175 3.15 3.440
17.02 0
0 3 2
Valiant
18.1 6 225.0 105 2.76 3.460
20.22 1
0 3 1
Duster 360
14.3 8 360.0 245 3.21 3.570
15.84 0
0 3 4
Como faço para agrupar a variável gear em grupos 3, depois
de 4, etc, conforme a ordenação das variáveis cyl ( em 4,6,8,..) e VS ( em 0,1),
ou seja, criar grupo da variável gear=3 onde a variáveis cyl e VS estejam
ordenadas, depois criar grupo da variável gear=4 com variáveis cyl e VS ordenadas,
e assim por adiante....quero todos em uma mesma base de dados, ou seja, mesmo
data frame.
Peço isso a vocês, pois meu objetivo final é pegar variáveis
sempre que na linha i se tenha VS=1 e na linha i+2 cyl=2 com gear=4, e assim
sucessivamente, ou seja, para cada grupo obtido para gear, intercruzar, VS=1 na
linha i e cyl=2 na linha i+2.
Tentei usar o pacote dylpr e usar depois os comandos:
selecao<-arrange(mtcars,
cyl,VS,mpg, disp, hp,drat,wt,qsec,am,gear,carb)
g<-group_by(selecao,
cyl,vs,gear)
conj<-filter(select(g,mpg,vs,cyl,gear),
(vs==1 & lead(cyl,2)==4) | gear==4)
Mas ele não separou por grupos, pois ao usar lead (lags para
frente) ele não fica restrito a cada grupo da variável formado com a gear, ou
seja, o R desconsidera os grupos formados e não limita os “lags” para frente em
apenas os grupos formados.
Gente, se alguém puder ajudar, agradeço muito.