<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Eu salvei em .csv e li com <div>> x = read.csv("file.csv", row.names = 1)</div><div><br></div><div>e então usei o método de vocês usando esse "x".</div><div><br></div><div><br><div> <br><div><div>On Mar 27, 2012, at 5:15 PM, Benilton Carvalho wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Vitor, como vc esta' lendo seus arquivos? Precisamos que voce descreva o passo-a-passo do que *vc* esta' fazendo e nao do que nos sugerimos.<div><br></div><div>Por exemplo, precisamos que voce descreva como vc esta' lendo o arquivo xlsx...</div>
<div><br></div><div>benilton<br><br><div class="gmail_quote">2012/3/28 Vitor Aguiar <span dir="ltr"><<a href="mailto:vitor.aguiar@me.com">vitor.aguiar@me.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">Me desculpe, eu tentei exatamente o que vocês sugeriram. Mas eu acho que a simplicidade do exemplo que eu dei não reflete meus dados, por isso enviei as planilhas no último email.<div>Tem 2 dados para cada categoria, por isso as colunas são nomeadas com o mesmo nome a cada 2 colunas.</div>
<div><br></div><div>Olhando para a 1ª categoria (duas primeiras colunas), após alguns missing values, eu tenho 2 valores iguais (14 e 14), então eu quero que eles apenas fiquem como estão. Logo após eu tenho um 16 e 15 (no arquivo "file_vitor.xlsx"), e eu quero na ordem crescente: 15 na 1ª coluna e 16 na 2ª (como no arquivo "file_vitor_sorted.xlsx"). E assim por diante para toda as categorias.</div>
<div><br></div><div>Ou seja, eu apenas quero um método em R para fazer o que o excel faz com </div><div><b><font color="#003bff">|</font></b> =MIN(B2:C2)<b><font color="#003bff">|</font></b> <b><font color="#003bff">|</font></b> =MAX(B2:C2)<b><font color="#003bff">|</font></b> <b><font color="#003bff">|</font></b> =MIN(D2:E2)<b><font color="#003bff">|</font></b> <b><font color="#003bff"> |</font></b>= MAX(D2:E2)<b><font color="#003bff">|</font></b>...</div>
<div><br></div><div>------</div><div><div>Método do Henrique:</div><div class="im"><div># assumindo que x seja seu objeto com 30 colunas<br>x <- as.data.frame(matrix(rnorm(30*2*10), ncol = 30))<br>do.call(cbind, lapply(split(names(x), rep(1:15, each = 2)), function(.x)t(apply(x[.x], 1, sort))))</div>
<div><br></div></div><div>Método do Benilton:</div><div><div class="h5"><div>x = data.frame(coluna1=c(13, 11, 9, 14), coluna2=c(15, 10, 18, 9))<br>res = t(apply(x, 1, sort))<br><br>se vc quiser novamente como um data.frame, use:<br>
<br>res = as.data.frame(t(apply(x, 1, sort)))</div></div></div></div><div>-------</div><div><div class="h5"><div><br></div><div><br></div><div><br></div><div><br><div><div>On Mar 27, 2012, at 4:16 PM, Benilton Carvalho wrote:</div>
<br><blockquote type="cite">E' importante, Vitor, que voce descreva exatamente o que voce fez... assim podemos tentar ajudar-lhe a compreender o que pode ser o problema. benilton<br><br><div class="gmail_quote">2012/3/28 Vitor Aguiar <span dir="ltr"><<a href="mailto:vitor.aguiar@me.com" target="_blank">vitor.aguiar@me.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Senhores, desculpem minha ignorância em programação, eu tentei o método do Benilton e do Henrique, mas parece haver algo diferente no meu conjunto de dados em relação aos exemplos dados e ambos os métodos produzem resultados estranhos ao invés de funcionar.<br>
Portanto, se vocês tiverem tempo para olhar, estou enviando 2 exemplos de planilhas em que eu estou tentando fazer esse sorting (exemplos com apenas 1000 linhas de dados).<br>
<br>
Dados originais:<br>
<a href="http://dl.dropbox.com/u/11578757/file_vitor.xlsx" target="_blank">http://dl.dropbox.com/u/11578757/file_vitor.xlsx</a><br>
<br>
dados ordenados:<br>
<a href="http://dl.dropbox.com/u/11578757/file_vitor_sorted.xlsx" target="_blank">http://dl.dropbox.com/u/11578757/file_vitor_sorted.xlsx</a><br>
<br>
Por favor, tenho certeza que os métodos de vocês funcionam, devo estar precisando de alguma pequena modificação para fazer funcionar com meus dados.<br>
<br>
Muito Obrigado,<br>
Vitor<br>
<div><div><br>
<br>
On Mar 26, 2012, at 6:11 PM, Henrique Dallazuanna wrote:<br>
<br>
> Victor,<br>
><br>
> Você pode fazer assim:<br>
><br>
> # assumindo que x seja seu objeto com 30 colunas<br>
> x <- as.data.frame(matrix(rnorm(30*2*10), ncol = 30))<br>
> do.call(cbind, lapply(split(names(x), rep(1:15, each = 2)),<br>
> function(.x)t(apply(x[.x], 1, sort))))<br>
><br>
> 2012/3/26 Vitor Aguiar <<a href="mailto:vitor.aguiar@me.com" target="_blank">vitor.aguiar@me.com</a>>:<br>
>> Boa tarde, senhores,<br>
>><br>
>> alguém pode por favor ajudar na dúvida abaixo?<br>
>><br>
>> Tenho uma planilha de excel (.csv) com 30 colunas e dezenas de milhares de<br>
>> linhas. Estou tentando edita-la no excel mas como é muito grande o programa<br>
>> sempre trava, talvez culpa do meu computador com 2Gb de RAM.<br>
>><br>
>> Como fazer isso usando R?<br>
>><br>
>> Nas minhas 30 colunas, eu quero trabalhar com 2 a 2, ou seja, tenho 15<br>
>> grupos de 2 colunas. Nessas duas colunas tenho valores numéricos como nesse<br>
>> exemplo:<br>
>><br>
>> coluna 1 coluna 2<br>
>> 13 15<br>
>> 11 10<br>
>> 9 18<br>
>> 14 9<br>
>><br>
>> Quando você compara cada linha, as vezes eu tenho valores maiores na 2ª<br>
>> coluna, e as vezes o valor maior está na 1ª coluna e o menor na 2º. Eu<br>
>> queria transferir todos os valores menores para a primeira coluna e todos os<br>
>> maiores para a 2ª. E assim para todas as 30 colunas (15 grupos de 2<br>
>> colunas).<br>
>><br>
>> No excel dá pra fazer com:<br>
>><br>
>> coluna 1 coluna 2<br>
>> MIN(A1:B1) MAX(A1:B1)<br>
>><br>
>> Desde já agradeço,<br>
>><br>
>><br>
>> Vitor Rezende da Costa Aguiar<br>
>> ---------------------------------------------------<br>
>> PhD student in Biotechnology<br>
>> Rede Nordeste de Biotecnologia<br>
>> Universidade Federal do Espírito Santo<br>
>> ---------------------------------------------------<br>
>> Current Adress:<br>
>> Department of Integrative Biology<br>
>> University of California, Berkeley<br>
>> 2033 Valley Life Sciences Building, office 4134<br>
>> Berkeley, CA - USA 94720<br>
>> Phone: <a href="tel:1%20%28510%29-643-0060" value="+15106430060" target="_blank">1 (510)-643-0060</a><br>
>><br>
>><br>
>> _______________________________________________<br>
>> R-br mailing list<br>
>> <a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
>> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
>> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código<br>
>> mínimo reproduzível.<br>
><br>
><br>
><br>
> --<br>
> Henrique Dallazuanna<br>
> Curitiba-Paraná-Brasil<br>
> 25° 25' 40" S 49° 16' 22" O<br>
> _______________________________________________<br>
> R-br mailing list<br>
> <a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br>
<br>
<br>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br>
</div></div></blockquote></div><br>
_______________________________________________<br>R-br mailing list<br><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</blockquote></div><br>
<br></div></div></div></div><br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>
_______________________________________________<br>R-br mailing list<br><a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br<br>Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.</blockquote></div><br>
<br></div></div></body></html>