|
[R] Eksport danych z Excela do R |
| Autor |
Wiadomość |
bulva
Chorąży

Pomógł: 5 razy Posty: 172 Skąd: Zgierz
|
Wysłany: 2009-05-09, 15:19 [R] Eksport danych z Excela do R
|
|
|
| No właśnie jak najprościej wczytać dane z arkusza do R? Np 800 komórek w formacie dziesiętnym, oddzielonych przecinkami? |
| Ostatnio zmieniony przez mathkit 2010-01-31, 10:02, w całości zmieniany 2 razy |
|
|
|
 |
Google
|
Wysłany: Reklama google.
|
|
|
|
|
|
|
|
|
piotrek
Plutonowy

Pomógł: 1 raz Posty: 60
|
Wysłany: 2009-05-09, 17:26
|
|
|
Popatrz na biblioteki:
1. gdata (funkcja read.xls)
2. xlsReadWrite
P.S. W R jest rozbudowany help - use and enjoy;-) |
|
|
|
 |
bulva
Chorąży

Pomógł: 5 razy Posty: 172 Skąd: Zgierz
|
Wysłany: 2009-05-09, 18:27
|
|
|
Chodziło mi raczej o jakieś "zewnętrzne" rozwiązanie typu zapisanie danych z arkusza w formacie .csv, próbowałem samodzielnie niestety potem R ma problem z ich czytaniem
Niemniej dziękuje, spróbuje Twojego rozwiązania :) |
|
|
|
 |
piotrek
Plutonowy

Pomógł: 1 raz Posty: 60
|
Wysłany: 2009-05-09, 22:24
|
|
|
csv też może być;-)
wpisz w R:
przejrzyj wyniki (pod koniec) i wypróbuj
[ Dodano: 2009-05-09, 23:10 ]
a niech tam, podam gotowe rozwiązanie.....
|
|
|
|
 |
cogito
Podporucznik

Pomógł: 30 razy Posty: 297 Skąd: Wrocław
|
Wysłany: 2009-05-10, 10:06
|
|
|
| Cytat: | 1. gdata (funkcja read.xls)
2. xlsReadWrite |
gdata::read.xls() to (dzisiaj) najlepszy wybor. Skrypt perlowy konwertuje wybrana karte do csv i pozniej jest ona wcztywana klasycznie.
Problem z innymi metodami RODBC::odbcConnectExcel() czy xlsReadWrite::read.xls() jest taki, ze jezeli w pewnej kolumnie w pierwszych ilus (chyba 200 ale moze wiecej) wierszach nei ma wartosci to funkcja nie potrafi okreslic typu kolumny, domyslnie ustawia jej typ logical i czasem zle wczytuje dane.
Chociaz zaleta RODBC::odbcConnectExcel() jest mozliwosc zadawania prostych zapytan SQLowych
Przy recznej konwersji do csv z polskiego Excela kropka dziesietna pozostaje "," wiec trzeba wcztywac funkcja read.csv2() lub ustawic parametr dec="," |
_________________ pozdrawiam
Przemek
www.biecek.pl |
|
|
|
 |
bulva
Chorąży

Pomógł: 5 razy Posty: 172 Skąd: Zgierz
|
Wysłany: 2009-05-12, 20:12
|
|
|
Problem jest następujący (i w całości leży po stronie Excela) - po wybraniu opcji zapisu do .csv owszem się on wykonuje natomiast część wierszy wygląda tak:
66;26;;;;;;;;;;;
71;26,5;;;;;;;;;
54;24;;;;;;;;;;;
95;24,5;;;;;;;;;
Z pojawiającymi się średnikami, nie wiedzieć skąd. Trzeba je ręcznie usuwać z pliku .csv, dopiero wtedy wczytywać do R [ za pomocą read.csv(... sep=";", dec="',") ]. Jest to mocno denerwujące... |
|
|
|
 |
piotrek
Plutonowy

Pomógł: 1 raz Posty: 60
|
Wysłany: 2009-05-13, 12:20
|
|
|
| Zrobiłem tablicę w Excelu 14 kolumn x 1050 wierszy i wyeksortowałem do csv i jest OK. Nie mam taiego zachowania, jakie opisujesz. |
|
|
|
 |
Grześ
Starszy Szeregowy


Posty: 35 Skąd: Biała Podlaska
|
Wysłany: 2009-05-13, 19:36
|
|
|
| Cytat: | część wierszy wygląda tak:
66;26;;;;;;;;;;;
71;26,5;;;;;;;;; |
pierwsz moja myśl, to sprawdź czy w tych wierszach są jakiekolwiek dane bo może są one poprostu puste, stąd taka liczba średników (sorki za banalną uwagę ale czasami tak jest, iż w ferworze walki nie widzi się najbardziej banalnych błędów)
Jeżeli jednak dalej masz problem to spróbuj przetworzyć ten plik za pomocą OpenOffice - ten pakiet ma jedną wielką zaletę w stosunku do produktu Microsoftu, jest w pełni kompatybilny ze wszystkimi otwartymi standardami, a nawet sam ze sobą ;) |
|
|
|
 |
bulva
Chorąży

Pomógł: 5 razy Posty: 172 Skąd: Zgierz
|
Wysłany: 2009-05-13, 21:32
|
|
|
W Excelu wyglądają one tak:
66 26
71 26,5
(każda liczba o osobnej komórce oczywiście). Więc to nie to
Zaopatrzę się w OpenOffice wobec tego . |
|
|
|
 |
cogito
Podporucznik

Pomógł: 30 razy Posty: 297 Skąd: Wrocław
|
Wysłany: 2009-05-13, 22:39
|
|
|
| Cytat: | 66;26;;;;;;;;;;;
71;26,5;;;;;;;;;
54;24;;;;;;;;;;;
95;24,5;;;;;;;;; |
Niestety czasami sie zdarza, choc nie udalo mi sie jeszcze odkryc dlaczego.
Jedna z teorii mowi ze jezeli kolumna byla formatowana (zmianiana szerokosc, kolory, cokolwiek) lub byla wczesniej tam jakas wartosc ktora wymusila formatowanie komorki to nawet po usunieciu tej wartosci excel zapisuje do csv takie pute kolumny
ale latwo je usunac w tekstowym edytorze (replace ;;;;;;;->"") lub w R
dane = dane[,apply(dane,2,function(x) any(!is.na(x)))] (nie sprawdzalem ale powinno dzialac)
pakiet gdata powinien lepiej radzic sobie niz reczne konwertowanie do csv |
_________________ pozdrawiam
Przemek
www.biecek.pl |
|
|
|
 |
eckonom
Szeregowy

Posty: 2 Skąd: Dąbrowa Górnicza
|
Wysłany: 2009-06-20, 21:42
|
|
|
najprostszy przepis na eksport do r z excela to zaznaczyc obaszar danych do skopiowania w excelu i dac kopiuj a w r wpisac: dane(czy jak tam chcecie inaczej nazwac ta zmienna)= read.delim("clipboard",FALSE)
szybko i bezproblemowo :)) |
|
|
|
 |
mathkit
Kapitan


Pomógł: 33 razy Wiek: 26 Posty: 651 Skąd: Katowice
|
Wysłany: 2009-06-20, 22:04
|
|
|
| Cytat: | | Jedna z teorii mowi ze jezeli kolumna byla formatowana (zmianiana szerokosc, kolory, cokolwiek) lub byla wczesniej tam jakas wartosc ktora wymusila formatowanie komorki to nawet po usunieciu tej wartosci excel zapisuje do csv takie pute kolumny |
Potwierdzam tą teorię, sam niejednokrotnie spotkałem się z nią w praktyce.
| Cytat: | | ale latwo je usunac w tekstowym edytorze (replace ;;;;;;;->"") lub w R |
Niestety czasami przy dużych zbiorach danych Wordpady, Notepady nie wyrabiają |
|
|
|
 |
Pietrucha
Starszy Szeregowy

Wiek: 31 Posty: 21 Skąd: Warszawa
|
Wysłany: 2009-07-28, 22:07
|
|
|
Również potwierdzam tak jest właśnie - puste na pozór kolumny należy usunąć i zapisać arkusz. Jeśli nie działa skopiować kolumny z danymi do innego arkusza i zapisać - tak już jest w microsofcie.
| mathkit napisał/a: | | Cytat: | | Jedna z teorii mowi ze jezeli kolumna byla formatowana (zmianiana szerokosc, kolory, cokolwiek) lub byla wczesniej tam jakas wartosc ktora wymusila formatowanie komorki to nawet po usunieciu tej wartosci excel zapisuje do csv takie pute kolumny |
Potwierdzam tą teorię, sam niejednokrotnie spotkałem się z nią w praktyce.
| Cytat: | | ale latwo je usunac w tekstowym edytorze (replace ;;;;;;;->"") lub w R |
Niestety czasami przy dużych zbiorach danych Wordpady, Notepady nie wyrabiają |
|
|
|
|
 |
cogito
Podporucznik

Pomógł: 30 razy Posty: 297 Skąd: Wrocław
|
Wysłany: 2009-07-29, 07:10
|
|
|
| Cytat: |
Niestety czasami przy dużych zbiorach danych Wordpady, Notepady nie wyrabiają |
Do edycji duzych plikow tekstowych uzywam i polecam polecam EditPlus. Saroc, ale mozna edytowac pliki majace kilkaset MB i wiecej, a z pewnoscia duzo wiecej niz CSV ktory mozna trzymac w Excelu. |
_________________ pozdrawiam
Przemek
www.biecek.pl |
|
|
|
 |
madzias
Szeregowy

Posty: 21 Skąd: Gdańsk
|
Wysłany: 2009-11-12, 14:01
|
|
|
Szukałam szukałam aż w końcu sie poddałam, dlatego postanowiłam zapytac Was.
Jestem początkującym uzytkownikiem pakietu R, więc proszę o wyrozumiałość ;)
Chciałam zrobić regresje liniową ale problem napotkałam juz przy wczytywaniu danychz excela:
chodzi mianowicie o użycie funkcji read.xls - jakie argumenty trzeba wpisać i w jaki sposób? Na przykład jeśli ścieżka pliku to C:\Documents and Settings\Madzia\Pulpit\dane ?
Próbowałam wczytać skopiowaną wczesniej kolumnę, za pomocą instrukcji która podał eckonom o treści read.delim("clipboard",FALSE)
i faktycznie dane były wczytane, ale nie wiedziałam jak zapisać to jako wektor który mógłby być użyty w regresji, próbowałam łączyc dane w wektor za pomocą c() bo niestety tylko to znałam, ale tez nie poskutkowało. Prosze o pomoc. |
|
|
|
 |
|
|