Como disse no outro blog e com os motivos explicitados neste post, agora o blog volta de vez para seu endereço de origem. E agora com o template novo. Espero, de verdade, postar com mais frequência.
Eu particularmente não gosto muito de salvar os dados no Excel. Depois que li em algum lugar falando muito mal do Excel como armazenador de dados, passei a usar o formato .txt – infelizmente não tenho o link.
Por outro lado não acho conveniente escrever tudo no Bloco de Notas. Então primeiro escrevo tudo no Excel e salvo como texto, existe essa opção mágica. Mas no Calc não existe, até a última vez que procurei não tinha. E agora? (Existe uma opção, veja o primeiro comentário deste post.) É possível fazer isso no R.
Seguindo os passos do outro post, importe o banco de dados. E depois exporte no formato desejado. No exemplo vou importar um .csv e exportar um .txt. Na última linha do exemplo confirmo se é possível ler o arquivo criado no R.
dados <- read.csv2("dados.csv")write.table(dados, file=”dados.txt”)dados2 <- read.table(“dados.txt”)
Pronto. É bem simples mesmo. Também é possível fazer o contrário, sair de um .txt e escrever um .csv com a função write.csv. Mas cuidado, se for importar do jeito comum com read.csv ou read.csv2 um arquivo que foi criado desta maneira, pode dar errado. O ideal é seguir o que a ajuda diz, e que é a última linha do exemplo.
write.csv(dados2, "dados2.csv")dados3 <- read.table("dados2.csv", header = TRUE, sep = ",", row.names = 1)
O Quick-R ensina a fazer isso para diversos tipos de arquivos. E também existe o R Data Import/Export. Vale a pena pelo menos olhar os dois.
O pacote xlsReadWrite sugerido pelo Quick-R parece ser muito interessante, se você conseguir instalar/usar. Tentei de tudo e nada. Dizem que o criador dele é muito bonzinho e se você mandar e-mail ele responde, mas nunca tomei coragem para fazer isso. Por enquanto, quando preciso exportar para .xls, utilizo esse código que aprendi na lista e não é muito confiável:
dados4write.table(dados4, file="nome.xls", row.names=FALSE, col.names=FALSE, sep="\t")
Se fizer do jeito que está, apenas os dados aparecerão, sem o nome das linhas e colunas. Para que eles apareceram é só retirar os argumentos row.names e col.names. O nome das colunas aparecerá deslocado uma célula para a esquerda.
Atenção: Como não é algo oficial – leia-se, gambiarra – pode dar errado sem motivo aparente. Cuidado ao fazer isso. Comigo sempre deu certo fazendo desse jeito.
Para encerrar, um exemplo no R Commander. Baseado em fatos, e desespero, reais. Pelo menos a nota não era minha, eu só era a monitora. lol Resumindo a novela: Ninguém sabia qual era a extensão do banco de dados. Só que isso não é tão importante no R Commander. Mas inventamos de importar o banco de dados para o R “normal”. Gastei umas duas horas tentando descobrir a extensão e nada. A solução foi mandar um e-mail para o professor, que resolveu o problema.
Apesar do problema estar resolvido fiquei pensando no que poderia ser feito caso tudo desse errado. Então, o ideal seria fazer o seguinte caminho no Commander:
Dados > Carregar Conjunto de dadosDados > Conjunto de dados ativo > Exportar conjunto de dados ativo
Na primeira linha leio o banco de dados e na segunda o escrevo em outro formato, neste caso .txt. Assim eu saberia o formato em que o arquivo está e ele poderia ser lido no R “normal” com o comando read.table por exemplo. Não tive essa ideia, que no fundo é bem boba, a tempo. Fica guardada para uma próxima oportunidade.
Os motivos que levam alguém a escrever dados em outros formatos são infinitos, e poder fazer isso seja lá qual for a razão é uma das coisas que eu mais gosto no R.
2 comentários
Oi Érica,
Gostei de ver você escrevendo de novo.
Eu acho que o livro de Paul Murrell chamado "Introduction to Data Technologies" seria muito útil para você ( http://www.stat.auckland.ac.nz/~paul/ItDT/ ).
O problema de xlsreadwrite pode ser o sistema operacional (ele só funciona no Windows 32-bit) ou o código proprietário que você precisa ter instalado (executa o comando xls.getshlib() após carregar o pacote para obter esse código. Nunca usei então não sei se precisa ser administrador para instalar).
Outra coisa. Calc salva como Txt, só que o filtro é chamado Txt CSV e você precisa especificar que quer editar as configurações. Após disso você pode escolher o separador de campos e de texto. O arquivo terá extensão csv se você não mudar a extensão manualmente na caixa na hora de especificar o nome do arquivo.
Finalmente, seu código para criar xls diretamente do R é baseado no fato que Excel e Calc entendem que o arquivo não é xls e sim separado por tabulações. Você poderia obter o mesmo efeito salvando com extensão txt, abrindo no Calc ou Excel e salvando como xls.
O livro de Murrell é bom, dá uma olhada.
Bons estudos,
Donald
Donald, muito bom te ver aqui. Não sabia desse método para salvar .txt pelo Calc. Obrigada por citar. Testei e gostei do resultado.
Vou olhar mesmo o livro do Murrell.
Postar um comentário