BP20122013 lab 1n id 92525 Nieznany

background image

2012/2013

Lab. 1

1

BADANIA PREFERENCJI – Wstęp do programu R
Studia niestacjonarne II stopnia, Kierunek „Ekonomia”, II rok, III semestr (zimowy)
Prof. UE dr hab. Andrzej Bąk

Wprowadzenie do programu R

1. Uruchomienie programu R

Rgui.exe

rgui

Za pomocą ikony

Znak zachęty

>

2. Tryby pracy

tryb interaktywny (polecenia wpisywane w oknie konsoli)

tryb wsadowy, wykonywanie zawartości skryptów – funkcja source("skrypt.r")

tryb „nadzorowany” (praca z wykorzystaniem powłoki typu Rcmdr)

3. Zakończenie pracy z programem R

q()

quit()

File | Exit

Za pomocą ikony

Pytanie: Save workspace image? Tak Nie Anuluj

4. Katalog roboczy

setwd()

np. setwd("c:/rtmp") lub

setwd("c:\\rtmp")

lub polecenie File | Change dir…

getwd()

dir()


5. Konsola użytkownika

Konsola użytkownika służy do komunikacji z programem R za pomocą poleceń. Polecenia to wyrażenia lub
przypisania. W poleceniach występują funkcje, operatory, instrukcje, stałe, zmienne, literały i inne obiekty.

Wielkość liter, którymi pisane są polecenia jest rozróżniana przez interpreter języka podczas dialogu z
wykorzystaniem konsoli oraz w czasie wykonywania skryptów napisanych w języku R (np. A i a to różne
znaki).


Enter
Ctrl L
 
  Home End Backspace Delete
Esc

Ctrl C Ctrl X Ctrl V
Tab

Akceptacja polecenia
Usunięcie zawartości konsoli
Przywołanie wykonanego polecenia (historia poleceń)
Modyfikacja przywołanego polecenia
Przerwanie wykonywanego polecenia (zatrzymanie interpretera
poleceń)
Kopiowanie, wycinanie, wklejanie
Uzupełnianie poleceń

Ustawienie
katalogu
roboczego

!

background image

2012/2013

Lab. 1

2

6. Menu programu

Polecenia z menu File

Source R code…

wykonanie skryptu w języku R – funkcja source()

(uwaga: funkcja print())

New script

utworzenie nowego skryptu

Open script…

edycja istniejącego skryptu

Display file(s)…

wyświetlenie zawartości folderu roboczego

Load Workspace…

wczytanie z pliku dyskowego do pamięci zapisanej zawartości przestrzeni roboczej
(stanu obiektów)

Save Workspace…

zapisanie w pliku dyskowym zawartości przestrzeni roboczej (stanu obiektów)

Load History…

odczytanie z pliku dyskowego historii wykonanych poleceń (np. w poprzedniej sesji)

Save History…

zapisanie w pliku dyskowym historii wykonanych poleceń

Change dir…

zmiana folderu roboczego – funkcja setwd()

Print…

wydrukowanie zawartości konsoli lub skryptu

Save to File…

zapisanie w pliku tekstowym zawartości konsoli

Exit

wyjście z programu



Polecenia z menu Help

Console

klawisze używane podczas pracy z konsolą

FAQ on R

najczęściej zadawane pytania o R

FAQ on R for Windows

najczęściej zadawane pytania o R w wersji dla Windows

Manuals (in PDF)

zbiór podręczników w plikach PDF

R functions (text)…

pomoc na temat funkcji programu (języka) R

Html help

pomoc w formacie HTML – funkcja help.start()

Html search page

przeszukiwanie stron www

Search help…

wyszukiwanie informacji w zainstalowanych pakietach –

funkcja help.search()

search.r-

project.org… wyszukiwanie informacji na stronach internetowych projektu R –

funkcja RSiteSearch()

Apropos…

wyświetlenie funkcji zawierających podany ciąg znaków – funkcja apropos()

R Project home page

strona domowa projektu R http://www.r-project.org/

CRAN home page

strona domowa zasobów (serwery lustrzane)

About

O wersji R

Pomoc wywoływana w oknie konsoli:
> help()
> help("date")
> ?date
> example(date)
> args(date)
> apropos("help")
> help.search("date")

Polecenia z menu Packages
Loa

d package…

wczytanie pakietu do pamięci (library())

Set CRAN mirror…

wybór serwera CRAN

Select repositories

wybór repozytoriów z pakietami

Install package(s)…

instalacja pakietu

Update packages…

aktualizacja pakietu

Install package(s) from local zip files…

instalacja pakietu z pliku zip na dysku lokalnym


7. Przykłady prostych obliczeń (wynik jest wyświetlany w oknie konsoli)

> 2+2
[1] 4
> 2^10
[1] 1024

Praca ze
skryptami
w języku R

background image

2012/2013

Lab. 1

3

> 3*15+5

#znak # poprzedza komentarz pomijany przez interpreter

[1] 50
> 3*(15+5)

#hierarchia operatorów

[1] 60

> -3^2
[1] -9

> (-3)^2

#hierarchia operatorów

[1] 9

> (-3)^3

#hierarchia operatorów

[1] -27

> 2^10-1

#hierarchia operatorów

[1] 1023

> 1/5
[1] 0.2

#domyślny separator miejsc dziesiętnych


8. Operatory przypisania (wynik jest przypisywany do zmiennej, obiektu)

Operatory przypisania umożliwiają tworzenie obiektów, np. zmiennych lub funkcji. Zmienne służą do
przechowywania w pamięci operacyjnej wartości, np. wyników obliczeń. Funkcje natomiast są zapisanymi w
języku R algorytmami obliczeniowymi. Do operatorów przypisania należą: <- -> =
Najczęściej korzysta się z operatora <-

> s<-2+2

#najczęściej stosowany operator przypisania

> s

#wyświetlenie wyniku przypisanego do zmiennej s

[1] 4

> (r<-50-25)

#przypisanie wyniku do zmiennej r i jego wyświetlenie

[1] 25

> 50-25->r

#rzadziej stosowany operator przypisania

> r
[1] 25

9. Przykłady użycia funkcji języka R

Funkcje są wywoływane za pomocą nazwy z nawiasami (). Jeżeli funkcja nie wymaga argumentów, to dodaje
się nawiasy puste, w przeciwnym razie w nawiasach umieszcza się argumenty.
Funkcja date() nie wymaga argumentów, a funkcja sqrt() wymaga argumentu w postaci liczby lub obiektu
zawierającego liczbę.
Nazwy obiektów mogą zawierać znaki alfanumeryczne oraz kropkę i podkreślenie. Nie są dozwolone w
nazwach obiektów np. operatory.

> date()

#funkcja bez argumentów

[1] "Mon Oct 13 20:44:55 2008"

> sqrt(9)

#funkcja wymagająca jednego argumentu

[1] 3
> sqrt(-9)

#komunikat o błędnym argumencie

[1] NaN
Warning message:
In sqrt(-9) : NaNs produced

> log(1024,2)

#funkcja wymagająca dwóch argumentów

[1] 10
> ls()

#wyświetlenie obiektów utworzonych w pamięci operacyjnej

[1] "r" "w"

background image

2012/2013

Lab. 1

4

> rm("r")

#usunięcie obiektu r z pamięci operacyjnej

> ls()
[1] "w"

#operator = użyty do przypisania wartości argumentowi funkcji
> rm(list=ls(all=TRUE)) #usunięcie wszystkich obiektów z pamięci RAM
> ls()
character(0)

Funkcja c() – combine (łączenie argumentów)
> c(1,2,3)
[1] 1 2 3

> c(1:10)

#operator zakresu :

[1] 1 2 3 4 5 6 7 8 9 10

> c(1:5,"a","b","c")

#łączenie typów w wektorze; jakie są konsekwencje?

[1] "1" "2" "3" "4" "5" "a" "b" "c"


Praca z programem R

1. Katalog roboczy, utworzenie katalogu roboczego

Utworzenie własnego katalogu roboczego, np. za pomocą programu Eksplorator Windows.
Uruchomienie programu R

> setwd("C:/rtmp")

# zmiana katalogu roboczego

lub polecenie File | Change dir…
> getwd()

# wyświetlenie aktualnego katalogu roboczego

> dir()

#wyświetlenie zawartości katalogu roboczego


2. Generowanie ciągów arytmetycznych

– operator zakresu : i funkcja c() – liczby całkowite w przedziale od 1 do 100 i od 25 do 1

> c(1:100); > c(25:1)

– funkcja seq() – generuje liczby w przedziale od –10 do 10 z krokiem 1

> seq(-10,10,1)

– funkcja seq() – przykład generowania liczb w przedziale od 1 do 10 z krokiem 0,5

> seq(1,10,by=0.5) #by–krok, = operator przypisania wartości argumentowi

– funkcja seq() – przykład użycia funkcji do generowania wartości w przedziale <–2

; 2

> dla sin(x)


> x <- seq(-2*pi,2*pi,by=0.1)
> plot(x,sin(x),type="l")

# narysowanie wykresu funkcji sin(x)


– funkcja seq() – z argumentami length, from, to
> seq(length=6,from=2,to=5)

– funkcja rep() – powtórzenie (replikacja) wektora liczb 1:5 (10 razy)
> rep(c(1:5),10)

– funkcja rep() – powtórzenie (replikacja) wektora liczb 1:5 (każdy element powtórzony 3 razy)
> rep(c(1:5),each=3)
– funkcja rep() – powtórzenie (replikacja) wektora liczb 1:5 (długość wektora 21 elementów)

background image

2012/2013

Lab. 1

5

> rep(c(1:5),length.out=21)

– funkcja rep() – powtórzenie (replikacja) wektora znaków
> rep("a",15)

3. Generowanie liczb (ciągów) losowych

 funkcja sample(x,size,replace=FALSE,prob=NULL) – próba losowa
x

either a (numeric, complex, character or logical) vector of more than one element from which
to choose, or a positive integer.

size

non-negative integer giving the number of items to choose.

replace

should sampling be with replacement?

prob

a vector of probability weights for obtaining the elements of the vector being sampled.


> sample(1:20,5)
> sample(20,5)
> sample(10,5,replace=TRUE)

#losowane wartości mogą się powtarzać

> sample(49,6,replace=FALSE) #losowane wartości nie mogą się powtarzać

> sample(letters,5)

#losowanie znaków (małe litery alfabetu)

> sample(LETTERS,5)

#losowanie znaków (wielkie litery alfabetu)


 funkcje runif() i rnorm()
> runif(5)

#rozkład jednostajny

> rnorm(10,mean=0,sd=1) #rozkład normlany o parametrach mean i sd

4. Tworzenie wektorów za pomocą funkcji: vector(), numeric(), logical(), character()

> x<-vector(mode="numeric",length=10)

#wektor z elementami liczbowymi

> x
> x<-vector(mode="character",length=10) #wektor z elementami znakowymi
> x
> x<-vector(mode="logical",length=10)

#wektor z elementami logicznymi

> x
> numeric(10)
> logical(10)
> character(10)

5. Tworzenie macierzy za pomocą funkcji: dim(), matrix(), array()

> X<-1:24
> dim(X)<-c(4,6) #ustalenie wymiarów macierzy
> dim(X)<-c(2,12) #ustalenie wymiarów macierzy
> X
> X<-matrix(1:24,nrow=4,ncol=6)
> X

#wyświetlanie elementów macierzy

> X<-matrix(1:24,nrow=4,ncol=6,byrow=TRUE)

#układ wierszami

> X
> X<-matrix(1:24,nrow=4,ncol=6,byrow=FALSE)

#układ kolumnami

> X[1,]

#wyświetlanie wybranych elementów macierzy

> X[,1]
> X[1,6]
> X[1:3,2]
> X<-matrix(nrow=2,ncol=3,byrow=TRUE)

#brak danych

> X
> X<-matrix(0,nrow=2,ncol=3,byrow=TRUE) #macierz wypełniona 0
> X
> X<-matrix(T,nrow=2,ncol=3,byrow=TRUE) #macierz wypełniona TRUE
> X

background image

2012/2013

Lab. 1

6

> array(1:12,c(3,4))
> array(1:12,c(4,3))
> array(1:12,c(3,2,2)) #macierz trójwymiarowa

6. Tworzenie listy za pomocą funkcji: list()

> lista<-list(1:3,c("a","b","c"),c(F,T))
> lista
> lista[2]
> lista[[2]][2]
> Lista<-list(liczby=1:3,znaki=c("a","b","c"),logiczne=c(F,T))
> Lista
> Lista$znaki

7. Tworzenie tabeli danych za pomocą funkcji: data.frame()

> a<-sample(c(TRUE,FALSE),10,replace=TRUE); b<-LETTERS[1:10]
> c<-runif(10); d<-month.abb[1:10]
> a; b; c; d
> tab<-data.frame(a,b,c,d)

#utworzenie tabeli danych

> tab
> colnames(tab)<-c("Logiczne","Znakowe","Liczbowe","Tekstowe")

#nazwy

kolumn
> tab

8. Zapisywanie tabeli danych w pliku dyskowym za pomocą funkcji: write.table(), write.csv(),

write.csv2()


> write.table(tab,file="tabela.txt")
> write.csv(tab,file="tabela1.csv")
> write.csv2(tab,file="tabela2.csv")

#separator miejsc dziesiętnych „,”

> write.csv2(tab,file="tabela3.csv",row.names=FALSE) #bez numerów wierszy

9. Odczytywanie tabeli danych z pliku dyskowego za pomocą funkcji: read.table(), read.csv(),

read.csv2()


> tbl<-read.table("tabela.txt")
> tbl1<-read.csv("tabela1.csv")
> tbl2<-read.csv2("tabela2.csv")
> tbl3<-read.csv2("tabela3.csv")
> tbl
> tbl3

background image

2012/2013

Lab. 1

7

Elementy programowania w języku R


1. Operatory

 Przypisania:
<– –> =
 Logiczne:
!

negacja

|

suma logiczna (listy i wektory)

||

suma logiczna (pojedyncze wartości)

&

iloczyn logiczny (listy i wektory)

&&

iloczyn logiczny (pojedyncze wartości)

 Relacyjne (porównywanie wartości): == != < <= > >=
 Arytmetyczne: + - * / ^
%%

dzielenie modulo (wynikiem jest reszta z dzielenia)

%/%

dzielenie całkowite (pominięcie reszty z dzielenia)

%*%

mnożenie macierzy


2. Grupowanie wyrażeń za pomocą instrukcji: {}


3. Instrukcje sterujące

 Instrukcja warunkowa (pojedyncze wartości): if(warunek) wyrazenie1 else wyrazenie2

 Funkcja warunkowa (wektory): ifelse(warunek, wyrazenie1, wyrazenie2)

4. Instrukcje iteracyjne

 Pętla z ustaloną z góry liczbą powtórzeń: for(zmienna in od:do) wyrazenie

 Iteracja, w której warunek sprawdzany jest na wejściu: while(warunek) wyrazenie

 Iteracja, w której warunek sprawdzany jest na wyjściu: repeat wyrazenie

5. Funkcje użytkownika

Instrukcja definiowania funkcji:
nazwa<-function(argumenty) wyrazenie
return(wyrazenie)


lub

nazwa<-function(argumenty)
{

wyrazenia

return(wyrazenie)

}

6. Przykłady wyrażeń

> 2==2

> 2!=2

> 5%%2

> 5%/%2

background image

2012/2013

Lab. 1

8

> w<-c(1:10)
> w
> sum(w)

#wynik 55, co to oznacza?

> sum(w>6)

#wynik 4, co to oznacza?

> sum(w[w>6])

#wynik 34, co to oznacza?


A<-matrix(c(1:9),nrow=3,ncol=3)
B<-matrix(c(-1:-9),nrow=3,ncol=3)
C<-A%*%B

#jakie macierze prostokątne można mnożyć?


> 2011%%4==0&&2011%%100!=0||2011%%400==0

#co oblicza to wyrażenie?

Użyj w tym wyrażeniu zmiennej r zamiast stałej 2011 (np. r<-2011)
Sprawdź inne lata, np. 2012, 2013 itd.

Wyrażenia z instrukcją (funkcją) warunkową:

> if(1234%%2==0) print("parzysta") else print("nieparzysta")

> sum(ifelse(1:123%%2==0,1,0))

#co oznacza wynik 61?



7. Przykłady funkcji użytkownika

 Funkcje użytkownika zapisuje się w skryptach (plikach dyskowych), np. nazwa_skryptu.r
 Nowy skrypt można zapisać w edytorze programu R uruchamianym poleceniem File | New script
 Edycję istniejącego skryptu (poprawę, rozbudowę, testowanie, uruchamianie poszczególnych wierszy

programu) można prowadzić za pomocą polecenia File | Open script…

 Wykonanie skryptu umożliwia polecenie File | Source R code… (funkcja source())

(1) Ciąg Fibonacciego (1202 r.):

2

dla

2

,

1

dla

1

2

1

n

F

F

n

F

n

n

n

Pierwsze 10 wyrazów ciągu Fibonacciego: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55. Skrypt Fibonacci.r

#Fibonacci(n) - funkcja znajdująca n liczb ciągu Fibonacciego
#wywołanie - fib<-Fibonacci(n)
Fibonacci<-function(n)
{
if(n>2 && n<=20)
{
fib<-numeric(n)
fib[1:2] <- 1
for(i in 3:n) {fib[i]<-fib[i-1]+fib[i-2]}
}
else {fib<-"n<2 lub n>20"}
return(fib)
}

Wywołanie funkcji Fibonacci()
> #te wiersze należy wpisać w oknie konsoli po wcześniejszym uruchomieniu
> #funkcji Fibonacci() za pomocą funkcji source()
> fib<-Fibonacci(20)
> fib





background image

2012/2013

Lab. 1

9

(2) Algorytm Euklidesa (Eudoksos z Knidos (IV wiek p.n.e.)): największy wspólny dzielnik dwóch liczb
całkowitych. Skrypt Euklides.r

#Euklides(a,b) - funkcja znajdująca NWD dwóch liczb całkowitych
#wywołanie - nwd<-Euklides(a,b)
Euklides<-function(a,b)
{
while(a!=b)
{
if(a>b) {a<-a-b} else {b<-b-a}
}
return(a)
}

#te wiersze będą wykonane po uruchomieniu funkcji
nwd<-Euklides(55,100)
print(nwd) # funkcja print wyświetla wyniki w trybie source()


8. Uruchomienie skryptu

source("Fibonacci.r")
lub File | Source R code…

source("Euklides.r")
lub File | Source R code…

background image

2012/2013

Lab. 1

10

9. Instalacja pakietów (Internet)

background image

2012/2013

Lab. 1

11

Analiza conjoint w programie R

Pakiet

conjoint


Bąk A., Bartłomowicz T. (2012), Package conjoint. Conjoint analysis package,
http://cran.r-project.org/web/packages/conjoint


background image

2012/2013

Lab. 1

12

Instalacja pakietu conjoint:



Wczytanie pakietu conjoint do pamięci:

> library(conjoint)

background image

2012/2013

Lab. 1

13

Podręcznik pakietu conjoint

background image

2012/2013

Lab. 1

14

Strona Katedry Ekonometrii i Informatyki

http://wgrit.ae.jgora.pl/keii/conjoint/index.html




Wyszukiwarka

Podobne podstrony:
BP20122013 lab 1s id 92526 Nieznany
CCNA4 lab 3 3 2 pl id 109125 Nieznany
Lab nr 3 id 258529 Nieznany
CCNA4 lab 4 3 7 pl id 109128 Nieznany
lab 04 id 257526 Nieznany
bd lab 04 id 81967 Nieznany (2)
CCNA4 lab 5 2 2 pl id 109130 Nieznany
lab fizycz id 258412 Nieznany
PMK lab potoczny id 363423 Nieznany
Lab 3 WDAC id 257910 Nieznany
CCNA4 lab 1 1 6 pl id 109122 Nieznany
3 endoprotezy lab IMIR id 3308 Nieznany
Lab 4 Tablice id 258003 Nieznany
Lab 13 id 257441 Nieznany
Lab 1 ASM51 id 749292 Nieznany
lab 11 id 257664 Nieznany
lab zagadnienia 2 id 258726 Nieznany
CCNA4 lab 4 2 1 pl id 109127 Nieznany

więcej podobnych podstron