pazuRtry
Operacje wejścia/wyjścia (zapisywanie i odczytywanie danych)
wektor . łańcuchów 1 scanCnazwa.pliku” , what1"character", sep1",
Domyślnie dane odczytywane są ze standardowego strumienia wejściowego, czyli / bezpośrednio z konsoli (parametr file = Dzięki temu możemy w skryptach R ' wraz z kodem źródłowym umieszczać nieduże zbiory danych. Poniższy skrypt inicjuje macierz mat wskazanymi 20 liczbami.
* funkcja scanO umożliwia wprowadzanie wartości bezpośrednio z klawiatui
kopiując poniższy kod do R, do wektora dane zostanie wprowadzony wektor dwudziestu liczb damę = scanO 12 3 4 12 3 4 12 3 4 12 3 4 12 3 4
# dane wczytane przez funkcje scanO są odczytywane jako wektor, poniższą
instrukcją zamieniamy je na macierz
mat “ matriktdane, 4, 5) >Ws6
Jeżeli dane zapisane są w pliku tekstowym w blokach o stałych szerokościach® pól, to można je odczytywać funkcją read.fwf (utils) (fwf to skrót od fixed uńdtfiii field). Pierwszy argument tej funkcji (file) jest nazwą pliku do odczytania, drugi-, jj (widths) jest specyfikacją szerokości kolejnych pól. Tę specyfikację możemy zadać . jedną dla całego pliku lub osobną dla każdej linii.
Poniżej dwa przykłady wywołania funkcji read.fwfO. W zależności od poda- J nych parametrów, odczytamy z tego samego pliku różne ramki danych. W pierwszym przykładzie specyfikujemy jeden wzorzec dla całego pliku, w drugim osobny wzorzec ? dla każdej z linii.
2.3.1.4 Import i eksport danych z Excel’a
Najwygodniej importować dane z Excela zapisując je w formacie csv a następnie
r' : 1..U___:—: r 1 : :.
lacierz = read.csv(file="nazwa.pliku.csv irite.csv(macierz, file1"nazwa.pliku.csv
Należy pamiętać, że Excel z polską lokalizacją stosuje " ," jako kropkę dziesiętną (tak jest też w niektórych innych krajach Europy wschodniej, zdecydowana większość krajów za kropkę dziesiętną wybrało znak kropki).
Innym sposobem importowania danych jest przekazywanie ich poprzez schowek. W Excelu zaznaczamy i kopiujemy do schowka wybrane komórki, a w R odczytujemy je funkcją read.tableO (patrz kolejny podrozdział). Jeszcze innym sposobem jest skorzystanie z interfejsu RODBC. Poniższy sposób odczytywania danych działa z plikami Excela oraz Accessa. Odczytajmy dla przykładu wszystkie dane z pliku plik.xls z zakładki Zakladkal. O interfejsie ODBC jeszcze powiemy przy okazji baz danych. Dodajmy tutaj, że korzystając z tego interfejsu możemy nie tylko od-. czytywać dane, ale również dodawać/usuwać zakładki oraz dane w plikach Excela.
# łączymy się z plikiem Excela iibrary("RODBC")
■ 1 możemy też użyć funkcji odbcConnectExcel2007() plikXLS <- odbcConnectExcel("plik.xls") sqlQuery(plikXLS, "select 1 from \"Zakladkal\"")
2.3.1.5 Import i eksport danych ze schowka
Dostęp do schowka uzyskuje się podając "clipboard" jako nawę pliku. Tak więc instrukcja:
scan("clipboard") wpisze do zmiennej wektor zawartość ze schowka a polecenie: write.csv(macierz, "clipboard")
zachowa w schowku wartości zmiennej macierz w formacie .csv. Różne programy zapisując i odczytując dane w schowku mogą używać różnego formatowania. W razie problemów z odczytaniem danych, należy spróbować użyć innych separatorów.
2.3.1.6 Import danych z SPSS’a
Jeżeli dane są zapisane w formacie programu SPSS, to aby je wczytać potrzebny jest zainstalowany pakiet Hmisc (w tym pakiecie jest wiele funkcji do importu danych z różnych formatów' plików). Do importu formatu SPSS służy funkcja spss.get(Hmisc). Poniżej przykładowa sesja z R.
wektor
zawartość pliku daneFWF.txt
*110 ALA ST0P13
*111 OLA STOP S
*
* podajemy format uniwersalny dla wszystkich linii
(dane 1 read.fwf("http://www.biecek.pl/R/dane/daneFWF.txt", widthB= c(l,2,4,5,2))>
VI V2 V3 V4 V5
1 10 ALA STOP 13
1 11 OLA STOP 5
* podajemy format dla każdej linii osoimp
(dane ■ read.fwf("http://www.biecek.pl/R/dane/daneFWF.txt", widths1 list(c(l,2,11), c(2,1,11))))
VI V2 V3 V4 V5 V6
1 10 ALA STOP13 11 1 OLA STOP 5