Excel-bestanden importeren in R, xlsx of xls

Kan iemand mij helpen op de beste manier om een Excel 2007-bestand (.xlsx) in R te importeren. Ik heb verschillende methoden geprobeerd en geen enkele lijkt te werken. Ik heb een upgrade uitgevoerd naar 2.13.1, Windows XP, xlsx 0.3.0, ik weet niet waarom de fout steeds weer verschijnt. Ik heb geprobeerd:

AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx","DNA_Tag_Numbers")

OF

AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx",1)

maar ik krijg de foutmelding:

Error in .jnew("java/io/FileInputStream", file) : 
  java.io.FileNotFoundException: C:\AB_DNA_Tag_Numbers.xlsx (The system cannot find the file specified)

Bedankt.


Antwoord 1, autoriteit 100%

Voor een oplossing die vrij is van lastige externe afhankelijkheden*, is er nu readxl:

Het readxl-pakket maakt het gemakkelijk om gegevens uit Excel en in R te halen.
In vergelijking met veel van de bestaande pakketten (bijv. gdata, xlsx,
xlsReadWrite) readxl heeft geen externe afhankelijkheden, dus het is gemakkelijk om
installeren en gebruiken op alle besturingssystemen. Het is ontworpen om mee te werken
tabelgegevens opgeslagen in een enkel blad.

Readxl ondersteunt zowel het oude .xls-formaat als het moderne xml-formaat
.xlsx-indeling. .xls-ondersteuning is mogelijk gemaakt door de libxls C-bibliotheek,
die veel van de complexiteit van het onderliggende binaire bestand abstraheert
formaat. Om .xlsx te ontleden, gebruiken we de RapidXML C++-bibliotheek.

Het kan als volgt worden geïnstalleerd:

install.packages("readxl") # CRAN version

of

devtools::install_github("hadley/readxl") # development version

Gebruik

library(readxl)
# read_excel reads both xls and xlsx files
read_excel("my-old-spreadsheet.xls")
read_excel("my-new-spreadsheet.xlsx")
# Specify sheet with a number or name
read_excel("my-spreadsheet.xls", sheet = "data")
read_excel("my-spreadsheet.xls", sheet = 2)
# If NAs are represented by something other than blank cells,
# set the na argument
read_excel("my-spreadsheet.xls", na = "NA")

* niet helemaal waar, het vereist het Rcpp-pakket, die op zijn beurt Rtools (voor Windows) of Xcode (voor OSX) vereist, die afhankelijkheden zijn buiten R. Maar ze vereisen geen gehannes met paden, enz., dus dat is een voordeel ten opzichte van Java- en Perl-afhankelijkheden.

UpdateEr is nu het rexcel-pakket. Dit belooft Excel-opmaak, functies en vele andere soorten informatie uit het Excel-bestand en in R te krijgen.


Antwoord 2, autoriteit 32%

Misschien wilt u ook het XLConnect-pakket proberen. Ik heb er meer geluk mee gehad dan xlsx (plus het kan ook .xls-bestanden lezen).

library(XLConnect)
theData <- readWorksheet(loadWorkbook("C:/AB_DNA_Tag_Numbers.xlsx"),sheet=1)

Als je problemen hebt met het niet vinden van je bestand, probeer het dan te selecteren met file.choose().


Antwoord 3, autoriteit 21%

Ik zou zeker de read.xls-functie proberen in de gdataPAKKET, die aanzienlijk volwassen is dan de xlsx-pakket. Het kan perl eisen …


Antwoord 4, Autoriteit 19%

Update

Zoals het onderstaande antwoord nu enigszins verouderd is, zou ik gewoon de aandacht vestigen op de Readxl -pakket. Als het Excel-vel goed is geformatteerd / gelaagd, zou ik nu Readxl gebruiken om uit de werkmap te lezen. Als lakens slecht zijn geformatteerd / gelegen, dan zou ik nog steeds naar CSV exporteren en vervolgens de problemen in R omgaan via read.csv()of gewone oude readLines().

origineel

My Preferred Way is om individuele Excel-vellen op te slaan in COMMA-bestanden gescheiden waarde (CSV). Op Windows zijn deze bestanden geassocieerd met Excel, zodat u de dubbele klik-open-in-excel “functie” niet verliest.

CSV-bestanden kunnen worden gelezen in R die read.csv(), of, als u op een locatie bevindt of een computer gebruikt die is ingesteld met een aantal Europese instellingen (waar ,wordt gebruikt als de decimale plaats), met read.csv2().

Deze functies hebben een verstandige standaardinstellingen die het lezen van passend geformatteerde bestanden eenvoudig maken. Houd eventuele labels voor monsters of variabelen in de eerste rij of kolom.

Voordelen toegevoegd van het opslaan van bestanden in CSV zijn dat als de bestanden gewoon tekst zijn die ze heel gemakkelijk kunnen worden doorgegeven en u kunt er zeker van zijn dat ze overal zullen openen; Men heeft geen excel nodig om de gegevens te bekijken of te bewerken.


Antwoord 5, Autoriteit 18%

Voorbeeld 2012:

library("xlsx")
FirstTable <- read.xlsx("MyExcelFile.xlsx", 1 , stringsAsFactors=F)
SecondTable <- read.xlsx("MyExcelFile.xlsx", 2 , stringsAsFactors=F)
  • Ik zou het ‘xlsx’-pakket proberen omdat het gemakkelijk te hanteren is en volwassen genoeg lijkt
  • werkte prima voor mij en had geen extra’s zoals Perl of wat dan ook nodig

Voorbeeld 2015:

library("readxl")
FirstTable  <- read_excel("MyExcelFile.xlsx", 1)
SecondTable <- read_excel("MyExcelFile.xlsx", 2)
  • tegenwoordig gebruik ik readxlen heb er goede ervaring mee opgedaan.
  • geen extra spullen nodig
  • goede prestatie

Antwoord 6, autoriteit 13%

Dit nieuwe pakket ziet er goed uit http://cran.r-project .org/web/packages/openxlsx/openxlsx.pdf
Het vereist geen rJava en gebruikt ‘Rcpp’ voor snelheid.


Antwoord 7, autoriteit 5%

Als je hetzelfde probleem tegenkomt en R geeft je een foutmelding — kon functie “.jnew” niet vinden — installeer dan gewoon de bibliotheek rJava. Of als je het al hebt, voer dan gewoon de regelbibliotheek (rJava) uit. Dat zou het probleem moeten zijn.

Ook moet het voor iedereen duidelijk zijn dat csv- en txt-bestanden gemakkelijker zijn om mee te werken, maar het leven is niet gemakkelijk en soms moet je gewoon een xlsx openen.


Antwoord 8, autoriteit 4%

Ik ontdekte onlangs de functie van Schaun Wheeler voor het importeren van Excel-bestanden in R nadat ik me realiseerde dat het xlxs-pakket niet was bijgewerkt voor R 3.1.0.

https://gist.github.com/schaunwheeler/5825002

De bestandsnaam moet de extensie “.xlsx” hebben en het bestand kan niet worden geopend wanneer u de functie uitvoert.

Deze functie is erg handig om toegang te krijgen tot andermans werk. De belangrijkste voordelen ten opzichte van het gebruik van de read.csv-functie zijn wanneer

  • Meerdere Excel-bestanden importeren
  • Grote bestanden importeren
  • Bestanden die regelmatig worden bijgewerkt

Het gebruik van de read.csv-functie vereist het handmatig openen en opslaan van elk Excel-document, wat tijdrovend en erg saai is. Het gebruik van de functie van Schaun om de workflow te automatiseren is daarom een enorme hulp.

Grote rekwisieten voor Schaun voor deze oplossing.


Antwoord 9, autoriteit 4%

Voor mij werkte het openxlx-pakket op de gemakkelijkste manier.

install.packages("openxlsx")
library(openxlsx)
rawData<-read.xlsx("your.xlsx");

Antwoord 10, autoriteit 2%

Wat is uw besturingssysteem? Welke versie van R gebruik je: 32-bit of 64-bit? Welke versie van Java heb je geïnstalleerd?

Ik had een soortgelijke fout toen ik voor het eerst de functie read.xlsx()begon te gebruiken en ontdekte dat mijn probleem (al dan niet gerelateerd aan het uwe; dit antwoord zou op zijn minst gezien worden als “probeer dit ook eens”) had te maken met de incompatibiliteit van .xlsx pacakge met 64-bit Java. Ik ben er vrij zeker van dat het .xlsx-pakket 32-bits Java vereist.

Gebruik 32-bits R en zorg ervoor dat 32-bits Java is geïnstalleerd. Dit kan uw probleem oplossen.


Antwoord 11, autoriteit 2%

Je hebt gecontroleerd of R het bestand daadwerkelijk kan vinden, b.v. file.exists(“C:/AB_DNA_Tag_Numbers.xlsx”) ? – Ben Bolker 14 aug. ’11 om 23:05

Bovenstaande opmerking had je probleem moeten oplossen:

require("xlsx")
read.xlsx("filepath/filename.xlsx",1) 

zou daarna goed moeten werken.


Antwoord 12

U kunt mogelijk meerdere tabbladen en meer opmaakinformatie behouden als u exporteert naar een OpenDocument-spreadsheetbestand (ods) of een oudere Excel-indeling en deze importeert met de ODS-lezerof de Excel-lezer die u hierboven noemde.


Antwoord 13

Zoals velen hier zeggen, schrijf ik hetzelfde, maar met een extra punt!

Eerst moeten we ervoor zorgen dat onze R Studio deze twee pakketten heeft geïnstalleerd:

  1. “readxl”
  2. “XLConnect”

Om een pakket in R te laden, kun je de onderstaande functie gebruiken:

install.packages("readxl/XLConnect")
library(XLConnect)
search()

Zoeken geeft de lijst weer met huidige pakketten die beschikbaar zijn in je R Studio.

Nog een addertje onder het gras, ook al heb je deze twee pakketten, maar je kunt nog steeds een probleem tegenkomen tijdens het lezen van het “xlsx”-bestand en de fout zou kunnen zijn als “fout: meer kolommen dan kolomnaam”

Om dit probleem op te lossen, kunt u eenvoudig uw Excel-blad “xlsx” opnieuw opslaan in

“CSV (door komma’s gescheiden)”

en je leven zal supergemakkelijk zijn….

Veel plezier!!


Antwoord 14

Ik heb heel hard mijn best gedaan op alle bovenstaande antwoorden. Ze hielpen echter niet echt omdat ik een mac gebruikte. De rio-bibliotheekheeft deze importfunctie die in principe elk type gegevensbestand in Rstudio kan importeren, zelfs bestanden die andere talen dan Engels gebruiken!

Probeer onderstaande codes:

   library(rio)
    AB <- import("C:/AB_DNA_Tag_Numbers.xlsx")
    AB <- AB[,1]

Hoop dat dit helpt.
Voor meer gedetailleerde referentie: https: //cran.r-project .org / web / pakketten / Rio / Vignettes / Rio.html

Other episodes