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>