Olá pessoal,<br><br>Eu possuo um banco de dados com com quase 900 mil linhas e 23 colunas. Segue um exemplo simplificado abaixo:<br><br><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">set.seed(321)</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">v<-data.frame(rbind(sample(1:3,10,replace = T),<br> sample(1:3,10,replace = T),<br> sample(1:3,10,replace = T),<br> sample(1:3,10,replace = T),<br>
rep(1,10)))</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"></span><br><span style="font-family:courier new,monospace">> v</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace"> X1 X2 X3 X4 X5 X6 X7 X8 X9 X10</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">1 3 1 2 2 3 2 1 2 3 2</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">2 1 1 2 3 2 3 3 1 1 1</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">3 1 1 2 2 2 3 2 1 3 1</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">4 2 3 3 2 3 1 3 3 2 1</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">5 1 1 1 1 1 1 1 1 1 1</span><br>
<br><br>Para cada linha eu quero determinar qual a coluna do primeiro valor que não é duplicado do primeiro elemento da linha (coluna 1) e salvar em um vetor o numero da coluna do primeiro elemento não duplicado.<br>Assim,<br>
<br>> which(v[1,]!=v[1,1])[1]<br>[1] 2<br><br>Ou seja, a segunda coluna possui o primeiro elemento diferente do elemento na primeira coluna.<br><br>Eu tentei fazer um loop para fazer isso para todas as linhas, mas devido ao grande número de linhas está demorando muito tempo.<br>
<br><span style="font-family:courier new,monospace">x<-numeric(nrow(v))<br>for(i in 1:nrow(v)){</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace"> x[i]<-which(v[i,]!=v[i,1])[1]</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">}</span><br style="font-family:courier new,monospace"><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">> x</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">[1] 2 3 3 2 NA # o valor NA é porque na quinta linha todos os valores são iguais.</span><br><br>Alguém tem idéia de como eu posso fazer isso de forma mais rápida??<br>
<br>Obrigado antecipadamente,<br><br>Guilherme<br><br>