Czy ktoś może mi pomóc w wyborze najlepszego sposobu importowania pliku programu Excel 2007 (.xlsx) do R. Próbowałem kilku metod i żadna z nich nie działa. Zaktualizowałem do 2.13.1, windows XP, xlsx 0.3.0, nie wiem, dlaczego błąd ciągle się pojawia. Próbowałem:
AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx","DNA_Tag_Numbers")
LUB
AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx",1)
ale wyskakuje mi błąd:
Error in .jnew("java/io/FileInputStream", file) :
java.io.FileNotFoundException: C:\AB_DNA_Tag_Numbers.xlsx (The system cannot find the file specified)
Dziękuję Ci.
.csv
.file.exists("C:/AB_DNA_Tag_Numbers.xlsx")
?Odpowiedzi:
W przypadku rozwiązania, które jest wolne od skomplikowanych zależności zewnętrznych *, jest teraz
readxl
:Można go zainstalować w następujący sposób:
install.packages("readxl") # CRAN version
lub
devtools::install_github("hadley/readxl") # development version
Stosowanie
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")
* nie do końca prawda, wymaga
Rcpp
pakietu , który z kolei wymaga Rtools (dla Windows) lub Xcode (dla OSX), które są zależnościami zewnętrznymi w stosunku do R. Ale nie wymagają żadnego majstrowania przy ścieżkach itp., więc jest to przewaga nad zależnościami Java i Perl.Aktualizacja Jest teraz pakiet rexcel . Obiecuje to, że formatowanie, funkcje i wiele innych informacji programu Excel z pliku Excel i do R.
źródło
Możesz także wypróbować pakiet XLConnect. Miałem z nim więcej szczęścia niż xlsx (plus potrafi czytać też pliki .xls).
library(XLConnect) theData <- readWorksheet(loadWorkbook("C:/AB_DNA_Tag_Numbers.xlsx"),sheet=1)
również, jeśli masz problem z nie znalezieniem pliku, spróbuj wybrać go za pomocą file.choose ().
źródło
readWorksheet(loadWorkbook(...))
możesz zrobić to samo trochę bardziej zwięźlereadWorksheetFromFile(...)
.Zdecydowanie wypróbowałbym
read.xls
funkcję wgdata
pakiecie, który jest znacznie bardziej dojrzały niżxlsx
pakiet. Może wymagać Perla ...źródło
Aktualizacja
Ponieważ odpowiedź poniżej jest teraz nieco nieaktualna, po prostu zwróciłbym uwagę na pakiet readxl . Jeśli arkusz Excela jest dobrze sformatowany / ułożony, użyłbym teraz readxl do czytania ze skoroszytu. Jeśli arkusze są źle sformatowane / leżą, nadal wyeksportuję je do CSV, a następnie rozwiążę problemy w R za pośrednictwem
read.csv()
lub zwykłego staregoreadLines()
.Oryginał
Moim preferowanym sposobem jest zapisywanie pojedynczych arkuszy Excela w plikach rozdzielanych przecinkami (CSV). W systemie Windows pliki te są skojarzone z programem Excel, więc nie tracisz funkcji „otwieranie” dwukrotnym kliknięciem w programie Excel.
Pliki CSV można wczytać do języka R za pomocą
read.csv()
lub, jeśli jesteś w lokalizacji lub korzystasz z komputera skonfigurowanego z niektórymi ustawieniami europejskimi (gdzie,
jest używany jako miejsce dziesiętne), używającread.csv2()
.Te funkcje mają rozsądne wartości domyślne, które ułatwiają odczytywanie odpowiednio sformatowanych plików. Po prostu zachowaj etykiety próbek lub zmiennych w pierwszym wierszu lub kolumnie.
Dodatkowymi zaletami przechowywania plików w formacie CSV jest to, że ponieważ pliki są zwykłym tekstem, można je bardzo łatwo przekazywać i możesz mieć pewność, że otworzą się w dowolnym miejscu; nie potrzeba programu Excel do przeglądania lub edytowania danych.
źródło
read.xlsx()
i masz najnowsze wersje tego pakietu i R, wyślij e-mail do opiekuna pakietu, aby zgłosić potencjalny błąd.Przykład 2012:
library("xlsx") FirstTable <- read.xlsx("MyExcelFile.xlsx", 1 , stringsAsFactors=F) SecondTable <- read.xlsx("MyExcelFile.xlsx", 2 , stringsAsFactors=F)
Przykład 2015:
library("readxl") FirstTable <- read_excel("MyExcelFile.xlsx", 1) SecondTable <- read_excel("MyExcelFile.xlsx", 2)
readxl
i mam z tym dobre doświadczenia.źródło
Ten nowy pakiet wygląda ładnie http://cran.r-project.org/web/packages/openxlsx/openxlsx.pdf Nie wymaga rJava i używa „Rcpp” dla zwiększenia szybkości.
źródło
Jeśli napotkasz ten sam problem i R daje Ci błąd - nie mogłem znaleźć funkcji ".jnew" - Wystarczy zainstalować bibliotekę rJava. Lub jeśli już ją masz, po prostu uruchom bibliotekę liniową (rJava). To powinien być problem.
Ponadto dla każdego powinno być jasne, że pliki csv i txt są łatwiejsze w obsłudze, ale życie nie jest łatwe i czasami wystarczy otworzyć plik xlsx.
źródło
gdata
dostaję komunikat startowygdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.
brzmi dla mnie jak powinno otworzyć pliki xlsx, choć co prawda nie testowałem go niedawno ...gdata
wersja 2.8.2 czytaxlsx
pliki zread.xls
funkcją.Niedawno odkryłem funkcję Schaun Wheeler do importowania plików Excela do R po tym, jak zdałem sobie sprawę, że pakiet xlxs nie został zaktualizowany do wersji 3.1.0.
https://gist.github.com/schaunwheeler/5825002
Nazwa pliku musi mieć rozszerzenie „.xlsx”, a plik nie może zostać otwarty po uruchomieniu funkcji.
Ta funkcja jest bardzo przydatna do uzyskiwania dostępu do prac innych ludzi. Głównymi zaletami w porównaniu z używaniem funkcji read.csv są kiedy
Korzystanie z funkcji read.csv wymaga ręcznego otwierania i zapisywania każdego dokumentu Excela, co jest czasochłonne i bardzo nudne. Dlatego użycie funkcji Schauna do automatyzacji przepływu pracy jest ogromną pomocą.
Wielkie rekwizyty dla Schauna za to rozwiązanie.
źródło
Dla mnie pakiet openxlx działał w najprostszy sposób.
install.packages("openxlsx") library(openxlsx) rawData<-read.xlsx("your.xlsx");
źródło
Jaki jest Twój system operacyjny? Jakiej wersji R używasz: 32-bitowej czy 64-bitowej? Jaką wersję oprogramowania Java masz zainstalowaną?
Miałem podobny błąd, kiedy po raz pierwszy zacząłem używać
read.xlsx()
funkcji i odkryłem, że mój problem (który może, ale nie musi być związany z Twoim; przynajmniej tę odpowiedź należy traktować jako „spróbuj też”) był związany z niekompatybilnością pakietu .xlsx z 64-bitową Javą. Jestem prawie pewien, że pakiet .xlsx wymaga 32-bitowej Javy.Użyj 32-bitowego języka R i upewnij się, że jest zainstalowana 32-bitowa Java. Może to rozwiązać Twój problem.
źródło
Powyższy komentarz powinien rozwiązać Twój problem:
require("xlsx") read.xlsx("filepath/filename.xlsx",1)
powinno działać dobrze po tym.
źródło
Możesz zachować wiele kart i więcej informacji o formatowaniu, jeśli wyeksportujesz do pliku arkusza kalkulacyjnego OpenDocument ( ods ) lub starszego formatu Excela i zaimportujesz go za pomocą czytnika ODS lub czytnika Excel, o którym wspomniałeś powyżej.
źródło
Jak stwierdziło wielu tutaj, piszę to samo, ale z dodatkowym punktem!
Najpierw musimy się upewnić, że w naszym R Studio są zainstalowane te dwa pakiety:
W celu załadowania paczki w R możesz skorzystać z poniższej funkcji:
install.packages("readxl/XLConnect") library(XLConnect) search()
search wyświetli listę aktualnych pakietów dostępnych w R Studio.
Teraz kolejny haczyk, nawet jeśli możesz mieć te dwa pakiety, ale nadal możesz napotkać problem podczas odczytu pliku „xlsx”, a błąd może wyglądać tak: „błąd: więcej kolumn niż nazwa kolumny”
Aby rozwiązać ten problem, możesz po prostu ponownie zapisać arkusz programu Excel „xlsx” w formacie
a twoje życie będzie super łatwe ....
Baw się dobrze!!
źródło
Bardzo się starałem, aby odpowiedzieć na wszystkie powyższe odpowiedzi. Jednak tak naprawdę nie pomogli, ponieważ użyłem komputera Mac. Biblioteka rio ma tę funkcję importu, która może w zasadzie każdy rodzaj importowania pliku danych w Rstudio , nawet tych plików przy użyciu języków innych niż angielski!
Wypróbuj poniższe kody:
library(rio) AB <- import("C:/AB_DNA_Tag_Numbers.xlsx") AB <- AB[,1]
Mam nadzieję, że to pomoże. Bardziej szczegółowe informacje: https://cran.r-project.org/web/packages/rio/vignettes/rio.html
źródło