Como ler dados do Excel para R

Se você perguntar a usuários de R que é a melhor maneira para importar dados diretamente do Microsoft Excel, a maioria deles provavelmente irá responder que a sua melhor opção é a primeira exportação do Excel para um arquivo CSV e, em seguida, usar read.csv () para importar seus dados para R.

Na verdade, este ainda é o conselho no Capítulo 8 do manual R importação e exportação, que diz: Nº 147-A primeira peça de conselho é para evitar fazê-lo, se possível! # 148- A razão é que muitos dos métodos existentes para a importação de dados a partir do Excel dependem de software de terceiros ou bibliotecas que podem ser difíceis de configurar, não está disponível em todos os sistemas operacionais, ou talvez ter termos de licenciamento restritivos.

No entanto, desde fevereiro de 2011, não existe uma nova alternativa: usando o pacote XLConnect, disponível a partir de CRAN. O que faz o XLConnect diferente é que ele usa uma biblioteca Java para ler e gravar arquivos de Excel. Isto tem duas vantagens:

  • Ele é executado em todos os sistemas operacionais que suportam Java. XLConnect é escrito em Java e funciona em Janela, Linux e Mac OS.

  • Não há nada mais para carregar. XLConnect não necessita de quaisquer outras bibliotecas ou software. Se você tem o Java instalado, ele deve funcionar.

XLConnect também pode escrever arquivos do Excel, incluindo mudando a formatação da célula, em ambos os formatos Excel 97-2003 e Excel 2007/10.

Para saber mais sobre XLConnect, você pode ler o excelente vinheta pacote.

Até agora você provavelmente está ansioso para começar com um exemplo. Suponha que você quer ler uma planilha do Excel em seu diretório de usuário chamado Elements.xlsx. Em primeiro lugar, instalar e carregar o pacote-em seguida, criar um objeto com o nome do arquivo:

> Install.packages ( "XLConnect")> biblioteca ( "XLConnect")> excel.file lt; - file.path ( "~ / Elements.xlsx")

Agora você está pronto para ler uma folha de esta pasta de trabalho com o readWorksheetFromFile () função. Você precisa passar pelo menos dois argumentos:

  • Arquivo: Uma cadeia de caracteres com um caminho para um válido .xls ou .xlsx Arquivo

  • folha: Um inteiro que indica a posição de folha de cálculo (por exemplo, = 1 folha) Ou o nome da folha de cálculo (por exemplo, folha = "Sheet2")

As duas linhas a seguir fazem exatamente a mesma coisa - ambos importar os dados da primeira planilha (chamado Sheet1):

> elementos lt; - readWorksheetFromFile (excel.file, folha = 1)> Elementos lt; - readWorksheetFromFile (excel.file, folha = "Sheet1")

menu