przewodnikPoPakiecieR8

przewodnikPoPakiecieR8



88


pazuRrry


SM


Opcrncjv w;;.s< m/» y)M m (zapisywanie i odczytywanie danych)


89


Operacje wejścia/wyjścia (zapisywanie i odczytywanie danych)

Aby wykonać jakąkolwiek analizę danych musimy najpierw wczytać dane do analiz Podobnie, mając już wyniki analiz, chcielibyśmy móc je zapisać. Na szczęście, Zarówno wczytywanie jak i zapisywanie danych nie jest problemem w R. Możemy ityobodnie zapisywać i odczytywać dane z plików tekstowych, plików w innych formatach, schowka systemowego, baz danych itp.

Bardzo szczegółowy i bardzo dobry opis importowania danych z i eksportowania do R można znaleźć pod adresem [14]. W tym dokumencie • znajduje się wiele ciekawych informacji, o których tu nawet nie wspominamy, np. jak korzystać ze spakowanych zbiorów danych, jak łączyć się z bazami danych, z innymi (rakietami statystycznymi, z innymi językami oprogramowania itp.


2.3.1


Na koniec jeszcze jeden przykład leniwej ewaluacji. W tym przykładzie my leniwego wartościowania do podania jako wartość domyślna wyrażenia, wyznaczane będzie dopiero wewnątrz funkcji.

>    # w poniższej deklaracji funkcji argument y za wartość domyślną

przyjmuje wyrażenie, które jest Określone dopiero wewnątrz ciała funkcji. Gdyby wartościowanie było gorliwe, zwrócony byłby błąd dotyczący nieokreślonej wartości z

>    wypiszKwadraty <- function(x, y » z"2) {

+ tt dopiero tutaj pojawia sią zmienna z + z <- l:x

+ ft wartość y jest wyznaczana dopiero w tym miejscu, a w tym miejscu wiadomo czym jest z + print(y)

+ 1 ' * v

>    * podajemy tylko pierwszy argument

>    wypiszKwadraty(6)

[1]    1    4    9 16 25 36

>    tf podając drugi argument, rezygnujemy z automatycznego wyznaczania

wartości y

>    wypiszK*fadraty(6, 1:5)

[13 1 2 3 4 5

>    # w ten sposób nie możemy wywoływać funkcji, ponieważ zmienna z w tym

wywołaniu jest w innej przestrzeni nazw niż zmienna z wewnątrz fu\ wypiszKwadraty

>    wypiszKvadraty(6, z~3)

Error in prlnt(y) : object "z" not found

2.2 Tryb wsadowy

R może być uruchomiony w trybie interaktywnym albo trybie wsadowym. R w trybie interaktywnym z graficznym interfejsem użytkownika można uruchomić plikiem;)®: Rgui.exe (w systemie Windows). Można też uruchomić R w trybie tekstowym Urli^S chamiejąc plik R.exe.

W pewnych sytuacjach (np. przy wykonywaniu czasochłonnych symulacji) nie en potrzebujemy interakcji z R. W takim przypadku możemy uruchomić plik Rterm. exe (lub też R.exe) z parametrem —vanilla wskazując plik, w którym znajduje się lista }§ poleceń do wykonania oraz wskazując plik gdzie mają być zapisane wyniki. Parametr vanilla powoduje, że R po zakończeniu pracy nic pyta się, czy zapamiętać historię^® poleceń oraz przestrzeń roboczą.

Przykładowe uruchomienie w tym trybie wyglądać może następująco:    1*™

Rterm —vanilla <plik.wejściowy.R >plik.wynikowy.txt

Po wykonaniu poleceń z pliku wejściowego środowisko R zastanie wyłączotię c S' a przestrzeń robocza nie będzie zapisana. Należy pamiętać, aby w wykonywanylii skrypcie ręcznie zapisać otrzymane wyniki, np. funkcją save. image(). O funkcjach do zapisu wyników w plikach tekstowych przeczytać można w rozdziale 2.3.

:

Pliki

Podstawowe funkcje do operacji no plikach i katalogach zostały już przedstawione. w podrozdziale 1.6.5.1. Między innymi przedstawiliśmy tam przykłady prostego użycia funkcji write.table(utils) i read.table(utils). Obie te funkcje mają znaczną liczbę dodatkowych argumentów. O tych argumentach i o innych funkcjach do odczytu danych napiszemy poniżej.

23.1.1 read.table(utils)

już się przekonaliśmy funkcja read.tableO wczytuje dane o strukturze ramki danych. Kolumny tej ramki odpowiadają kolejnym zmiennym a wiersze kolejnym acjom (przypadkom). Wartości w wierszach tej samej kolumny powinny być samego typu, ale typy w różnych kolumnach mogą się od siebie różnić. Deklaracja funkcji read.tableO jest następująca:

read.table(file, header=FALSE, sep="", quote="\"’", dec-".", row.names, col.names, as.is=!stringsAsFactors, na.strings="NA", colClasses=NA, nrovs=-l, skip=0, check.names=TRUE, fill=!blank.lines.skip, strip.white=FALSE, blank. lines. skip=TRUE, comment. char="#'', allowEscapes=FALSE, flush=FALSE, stringsAsFactors, encoding = "unknown")

: W pakiecie utils znajdują się również cztery inne funkcje o takim samym działaniu. ale innej parametryzacji argumentów domyślnych.

read.csv(file, header=TRUE, sep=",", quote-"\"", dec-".", fill=TRUE, comment.char-"", ...)

read.csv2(file, header=TRUE, sep-";", quote-"V"\ dec-",", fill=TRUE, comment.char-"", ...)

read.delim(file, header-TRUE, sep="\t", quote-"V"', dec-".", fill=TRUE, comment.char="", ...)

read.delim2(file, header=TRUE, sep-"\t", quote-"V". dec-",", fill-TRUE, comment.char-"", ...)

HI



Wyszukiwarka

Podobne podstrony:
przewodnikPoPakiecieR1 pazuRtry Operacje wejścia/wyjścia (zapisywanie i odczytywanie danych) wektor
12456 Untitled16 (2) 24 4. Jak odczytywać i zapisywać dane4.1 Odczyt danych z pamięci programu ROM W
Untitled19 (5) 30 4. Jak odczytywać i zapisywać dane ... Odczytywanie danych zapisanych w pamięci pr
praktyki4 •    Odczytanie danych do obliczeń. •    Zapisywanie rozwią
skanuj0127 (16) 138 PHP i MySQL dla każdego Listing 5.2. Różne sposoby odczytania danych z formularz
Statystyka w szkole podstawowej Klasa IV: odczytywanie danych o otaczającym świecie, prezentowanie d
IMG88 (6) W praklycc powitndmię pmkroj“ poprzecznego odczytuje się na podaa«x pubowi z tablic pól k
przewodnikPoPakiecieR4 120 pazuRrry Wielomiany Legendre’a stopnia 0 — - stopnia 1 • • • stopnia 2 .
o Badania marketingowe (marketing researchj to systematyczne gromadzenie zapisywanie i analiza danyc

więcej podobnych podstron