Kody z rozdziału 2. Podstawy pracy z R ,,Przewodnika po programie R’’ wydanie 4.

Aby zainstalować i włączyć pakiet Przewodnik wykonaj poniższe dwie liniki.

devtools::install_github("pbiecek/PrzewodnikPakiet")
library("Przewodnik")

Rozdział 2.1

auta <- read.table("http://www.biecek.pl/R/auta.csv", 
        sep = ";", header = TRUE)
head(auta)
##     Marka Model  Cena KM Pojemnosc Przebieg  Paliwo Produkcja
## 1 Peugeot   206  8799 60      1100    85000 benzyna      2003
## 2 Peugeot   206 15500 60      1124   114000 benzyna      2005
## 3 Peugeot   206 11900 90      1997   215000  diesel      2003
## 4 Peugeot   206 10999 70      1868   165000  diesel      2003
## 5 Peugeot   206 11900 70      1398   146000  diesel      2005
## 6 Peugeot   206 19900 70      1398    86400  diesel      2006

Rozdział 2.2.1

c(2, 3, 5, 7, 11, 13, 17)
## [1]  2  3  5  7 11 13 17
-3:3
## [1] -3 -2 -1  0  1  2  3
seq(from = 0, to = 100, by = 11)
##  [1]  0 11 22 33 44 55 66 77 88 99
month.name
##  [1] "January"   "February"  "March"     "April"     "May"      
##  [6] "June"      "July"      "August"    "September" "October"  
## [11] "November"  "December"
LETTERS
##  [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q"
## [18] "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
LETTERS[ 5:10 ]
## [1] "E" "F" "G" "H" "I" "J"
LETTERS[ c(1, 2, 9:14) ]
## [1] "A" "B" "I" "J" "K" "L" "M" "N"
co_drugi <- seq(from = 1, to = length(LETTERS), by = 2)
LETTERS[ co_drugi ]
##  [1] "A" "C" "E" "G" "I" "K" "M" "O" "Q" "S" "U" "W" "Y"
month.name[ -(5:9) ]
## [1] "January"  "February" "March"    "April"    "October"  "November"
## [7] "December"
wartosc <- c(pion = 1, skoczek = 3, goniec = 3, 
             wieza = 5, hetman = 9, krol = Inf)
wartosc[ c("goniec", "wieza") ]
## goniec  wieza 
##      3      5
wartosc[ 6:1 ]
##    krol  hetman   wieza  goniec skoczek    pion 
##     Inf       9       5       3       3       1
wartosc[ wartosc < 6 ]
##    pion skoczek  goniec   wieza 
##       1       3       3       5
wartosc[ c(4,5) ] <- c(6,7)
wartosc
##    pion skoczek  goniec   wieza  hetman    krol 
##       1       3       3       6       7     Inf
wartosc <- c(wartosc, nowa_bierka = 5)

Rozdział 2.2.2

library("Przewodnik")
head(koty_ptaki)
##   gatunek waga dlugosc predkosc habitat zywotnosc druzyna
## 1  Tygrys  300     2.5       60    Azja        25     Kot
## 2     Lew  200     2.0       80  Afryka        29     Kot
## 3  Jaguar  100     1.7       90 Ameryka        15     Kot
## 4    Puma   80     1.7       70 Ameryka        13     Kot
## 5 Leopard   70     1.4       85    Azja        21     Kot
## 6  Gepard   60     1.4      115  Afryka        12     Kot
koty_ptaki[ c(1, 3, 5) , ]
##   gatunek waga dlugosc predkosc habitat zywotnosc druzyna
## 1  Tygrys  300     2.5       60    Azja        25     Kot
## 3  Jaguar  100     1.7       90 Ameryka        15     Kot
## 5 Leopard   70     1.4       85    Azja        21     Kot
koty_ptaki[ c(1, 3, 5) , 2:5]
##   waga dlugosc predkosc habitat
## 1  300     2.5       60    Azja
## 3  100     1.7       90 Ameryka
## 5   70     1.4       85    Azja
koty_ptaki[ koty_ptaki[,"predkosc"] > 100, 
            c("gatunek", "predkosc", "dlugosc")]
##           gatunek predkosc dlugosc
## 6          Gepard      115     1.4
## 8          Jerzyk      170     0.2
## 10  Orzel przedni      160     0.9
## 11 Sokol wedrowny      110     0.5
## 13       Albatros      120     0.8
koty_ptaki[, "predkosc"]
##  [1]  60  80  90  70  85 115  65 170  70 160 110 100 120
koty_ptaki$predkosc
##  [1]  60  80  90  70  85 115  65 170  70 160 110 100 120
koty_ptaki$predkosc_mile <- koty_ptaki$predkosc * 1.6
head(koty_ptaki, 2)
##   gatunek waga dlugosc predkosc habitat zywotnosc druzyna predkosc_mile
## 1  Tygrys  300     2.5       60    Azja        25     Kot            96
## 2     Lew  200     2.0       80  Afryka        29     Kot           128

Rozdział 2.2.3

l <- list(liczby = 1:5, litery = LETTERS, logika = c(TRUE, TRUE, TRUE, FALSE))
l
## $liczby
## [1] 1 2 3 4 5
## 
## $litery
##  [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q"
## [18] "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
## 
## $logika
## [1]  TRUE  TRUE  TRUE FALSE
l[[2]]
##  [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q"
## [18] "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
l[["logika"]]
## [1]  TRUE  TRUE  TRUE FALSE
l$liczby
## [1] 1 2 3 4 5

Rozdział 2.3

library("Przewodnik")
head(daneSoc, 2)
##   wiek wyksztalcenie st.cywilny      plec             praca
## 1   70      zawodowe  w zwiazku mezczyzna uczen lub pracuje
## 2   66      zawodowe  w zwiazku   kobieta uczen lub pracuje
##   cisnienie.skurczowe cisnienie.rozkurczowe
## 1                 143                    83
## 2                 123                    80

Rozdział 2.3.1

range(daneSoc$wiek)
## [1] 22 75
mean(daneSoc$wiek)
## [1] 43.16176
mean(daneSoc$wiek, trim=0.2)
## [1] 42.58065
median(daneSoc$wiek)
## [1] 45
summary(daneSoc$wiek)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   22.00   30.00   45.00   43.16   53.00   75.00
sd(daneSoc$wiek)
## [1] 13.8471
library("e1071")
kurtosis(daneSoc$wiek)
## [1] -0.9558479
skewness(daneSoc$wiek)
## [1] 0.233151
quantile(daneSoc$wiek, c(0.1, 0.25, 0.5, 0.75, 0.9))
##  10%  25%  50%  75%  90% 
## 26.0 30.0 45.0 53.0 62.4
cor(daneSoc[,c(1,6,7)])
##                              wiek cisnienie.skurczowe
## wiek                   1.00000000         -0.02765239
## cisnienie.skurczowe   -0.02765239          1.00000000
## cisnienie.rozkurczowe -0.08313656          0.67852707
##                       cisnienie.rozkurczowe
## wiek                            -0.08313656
## cisnienie.skurczowe              0.67852707
## cisnienie.rozkurczowe            1.00000000

Rozdział 2.3.2

table(daneSoc$wyksztalcenie)
## 
## podstawowe    srednie     wyzsze   zawodowe 
##         93         55         34         22
table(daneSoc$wyksztalcenie, daneSoc$praca)
##             
##              nie pracuje uczen lub pracuje
##   podstawowe          22                71
##   srednie             16                39
##   wyzsze               6                28
##   zawodowe             8                14
summary(daneSoc$wyksztalcenie)
## podstawowe    srednie     wyzsze   zawodowe 
##         93         55         34         22
summary(daneSoc[,1:4])
##       wiek          wyksztalcenie     st.cywilny         plec    
##  Min.   :22.00   podstawowe:93    singiel  :120   kobieta  : 55  
##  1st Qu.:30.00   srednie   :55    w zwiazku: 84   mezczyzna:149  
##  Median :45.00   wyzsze    :34                                   
##  Mean   :43.16   zawodowe  :22                                   
##  3rd Qu.:53.00                                                   
##  Max.   :75.00

Rozdział 2.4

library("Przewodnik")
tab <- table( daneSoc$wyksztalcenie )
barplot(tab, horiz = TRUE, las = 1)

tab2 <- table( daneSoc$plec, daneSoc$wyksztalcenie )
barplot(tab2, las=1, beside = TRUE)
legend("topright",c("kobieta","mezczyzna"),fill=c("grey","black"))

hist(daneSoc$wiek, breaks = 15, main="Histogram wieku", las=1,
     ylab="Liczba", xlab="Wiek")

hist(daneSoc$wiek, breaks = 15, col="grey", border="white", las=1, 
     probability = TRUE, ylab="Czestosc", xlab="Wiek")

boxplot(daneSoc$cisnienie.rozk, daneSoc$cisnienie.skur,
        horizontal = TRUE, names = c("Skurczowe","Rozkurczowe"))

boxplot(wiek~wyksztalcenie, data = daneSoc, varwidth=TRUE,  
    col="lightgrey", ylab="Wiek", las=1)

plot(density(daneSoc$wiek), main="Rozklad wieku")

plot(density(daneSoc$wiek, bw=1), main="Rozklad wieku",type="h")

plot(ecdf(daneSoc$wiek), main="Dystrybuanta wieku")

mezczyzni <- filter(daneSoc, plec == "mezczyzna")
kobiety   <- filter(daneSoc, plec == "kobieta")
plot(ecdf(mezczyzni$wiek), main="Wiek / plec", pch=21)
plot(ecdf(kobiety$wiek), add=TRUE, col = "grey")

library("car")
sp(cisnienie.rozkurczowe~cisnienie.skurczowe, data=daneSoc, 
   smooth=FALSE, reg.line=FALSE, pch=19)

sp(cisnienie.rozkurczowe~cisnienie.skurczowe|plec, data=daneSoc, 
   smooth=FALSE, lwd=3, pch=c(19,17))

mosaicplot(~wyksztalcenie, data=daneSoc, main="", 
           border="white")

mosaicplot(~wyksztalcenie+praca, data=daneSoc, border="white", col=c("grey40", "grey70"))

Rozdział 2.5

library("dplyr")
tylkoCorsa <- filter(auta, Model == "Corsa")
head(tylkoCorsa)
##   Marka Model  Cena  KM Pojemnosc Przebieg  Paliwo Produkcja
## 1  Opel Corsa 13450  70      1248   190000  diesel      2004
## 2  Opel Corsa 25990  75      1300    84000  diesel      2008
## 3  Opel Corsa 17990  80      1229    48606 benzyna      2007
## 4  Opel Corsa 23999  60       998    63000 benzyna      2009
## 5  Opel Corsa 16500 101      1700   118000  diesel      2006
## 6  Opel Corsa 27900  80      1229    73500 benzyna      2007
tylkoCorsa <- filter(auta, Model == "Corsa", Produkcja == 2010, Paliwo == "diesel")
head(tylkoCorsa)
##   Marka Model     Cena KM Pojemnosc Przebieg Paliwo Produkcja
## 1  Opel Corsa 49050.00 75      1300      100 diesel      2010
## 2  Opel Corsa 47202.34 76      1300    53000 diesel      2010
## 3  Opel Corsa 37900.00 95      1248     8300 diesel      2010
## 4  Opel Corsa 12200.00 75      1248    11378 diesel      2010
## 5  Opel Corsa 34900.00 95      1300    24000 diesel      2010
## 6  Opel Corsa 37900.00 75      1248    18500 diesel      2010

Rozdział 2.5.2

trzyKolumny <- select(auta, Marka, Model, Cena)
head(trzyKolumny)
##     Marka Model  Cena
## 1 Peugeot   206  8799
## 2 Peugeot   206 15500
## 3 Peugeot   206 11900
## 4 Peugeot   206 10999
## 5 Peugeot   206 11900
## 6 Peugeot   206 19900
head(select(auta, starts_with("M")))
##     Marka Model
## 1 Peugeot   206
## 2 Peugeot   206
## 3 Peugeot   206
## 4 Peugeot   206
## 5 Peugeot   206
## 6 Peugeot   206

Rozdział 2.5.3

autaZWiekiem <- mutate(auta,
                       Wiek = 2013 - Produkcja,
                       PrzebiegNaRok = round(Przebieg/Wiek))
head(select(autaZWiekiem,Marka, Model,  Cena, Paliwo, Wiek, PrzebiegNaRok))
##     Marka Model  Cena  Paliwo Wiek PrzebiegNaRok
## 1 Peugeot   206  8799 benzyna   10          8500
## 2 Peugeot   206 15500 benzyna    8         14250
## 3 Peugeot   206 11900  diesel   10         21500
## 4 Peugeot   206 10999  diesel   10         16500
## 5 Peugeot   206 11900  diesel    8         18250
## 6 Peugeot   206 19900  diesel    7         12343

Rozdział 2.5.4

posortowaneAuta <- arrange(auta, Model, Cena)
head(posortowaneAuta)
##     Marka Model    Cena KM Pojemnosc Przebieg      Paliwo Produkcja
## 1 Peugeot   206 6330.70 90      1997    90000      diesel      2004
## 2 Peugeot   206 6599.00 70      1398   277000      diesel      2004
## 3 Peugeot   206 6900.00 90      1997   132000      diesel      2004
## 4 Peugeot   206 7900.00 88      1360   114000     benzyna      2004
## 5 Peugeot   206 8469.45 60      1124    77800     benzyna      2005
## 6 Peugeot   206 8500.00 60      1124   117000 benzyna+LPG      2004
posortowaneAuta <- arrange(auta, Model, desc(Cena))
tylkoKia <- filter(auta, Marka == "Kia")
posortowane <- arrange(tylkoKia, Cena)
czteryKolumny <- select(posortowane, Model, Cena, Przebieg, Produkcja)
head(czteryKolumny, 4)
##   Model    Cena Przebieg Produkcja
## 1 Cee'd  1026.6    28000      2008
## 2 Cee'd 13900.0   129000      2009
## 3 Cee'd 14700.0    34000      2009
## 4 Cee'd 14900.0   158500      2005

Rozdział 2.5.5

head(
  select( 
    arrange(
      filter(auta, 
             Marka == "Kia"), 
      Cena), 
    Model, Cena, Przebieg, Produkcja)
  , 4)
##   Model    Cena Przebieg Produkcja
## 1 Cee'd  1026.6    28000      2008
## 2 Cee'd 13900.0   129000      2009
## 3 Cee'd 14700.0    34000      2009
## 4 Cee'd 14900.0   158500      2005
auta %>% 
  filter(Marka == "Kia") %>% 
  arrange(Cena) %>% 
  select(Model, Cena, Przebieg, Produkcja) -> 
  posortowane
head(posortowane)
##   Model     Cena Przebieg Produkcja
## 1 Cee'd  1026.60    28000      2008
## 2 Cee'd 13900.00   129000      2009
## 3 Cee'd 14700.00    34000      2009
## 4 Cee'd 14900.00   158500      2005
## 5 Cee'd 16900.00     9900      2010
## 6 Cee'd 18803.89    15000      2010
auta %>% 
    lm(Cena~Przebieg, data = .) %>% 
    summary()
## 
## Call:
## lm(formula = Cena ~ Przebieg, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
##  -40291  -13437   -3639    5809 3947024 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  4.388e+04  3.693e+03  11.883  < 2e-16 ***
## Przebieg    -9.166e-02  2.856e-02  -3.209  0.00135 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 82640 on 2398 degrees of freedom
## Multiple R-squared:  0.004277,   Adjusted R-squared:  0.003862 
## F-statistic:  10.3 on 1 and 2398 DF,  p-value: 0.001348

Rozdział 2.5.6

auta %>%
  summarise(sredniaCena = mean(Cena),
            medianaPrzebiegu = median(Przebieg),
            sredniWiek = mean(2013 - Produkcja),
            liczba = n())
##   sredniaCena medianaPrzebiegu sredniWiek liczba
## 1    33340.38           122000   6.638333   2400
auta %>%
  select(Marka, Cena, Przebieg, Model) %>%
  group_by(Marka) %>%
  mutate(Przebieg = Przebieg/mean(Przebieg, na.rm=TRUE)) 
## Source: local data frame [2,400 x 4]
## Groups: Marka [6]
## 
##      Marka  Cena  Przebieg  Model
##     <fctr> <dbl>     <dbl> <fctr>
## 1  Peugeot  8799 0.6712017    206
## 2  Peugeot 15500 0.9001999    206
## 3  Peugeot 11900 1.6977455    206
## 4  Peugeot 10999 1.3029209    206
## 5  Peugeot 11900 1.1528876    206
## 6  Peugeot 19900 0.6822568    206
## 7  Peugeot 16400 1.1844736    206
## 8  Peugeot 13900 1.0344403    206
## 9  Peugeot 13900 1.2555420    206
## 10 Peugeot 18400 0.4501000    206
## # ... with 2,390 more rows
auta %>%
  group_by(Marka) %>%
  summarise(sredniaCena = mean(Cena),
            medianaPrzebiegu = median(Przebieg),
            sredniWiek = mean(2013 - Produkcja),
            liczba = n())
## # A tibble: 6 × 5
##        Marka sredniaCena medianaPrzebiegu sredniWiek liczba
##       <fctr>       <dbl>            <dbl>      <dbl>  <int>
## 1       Audi    59891.57         150452.5      6.550    200
## 2       Fiat    15772.33          75000.0      6.330    200
## 3        Kia    36982.64          42850.0      3.980    200
## 4       Opel    33590.74         120550.0      6.615    800
## 5    Peugeot    17388.51         127750.0      8.165    400
## 6 Volkswagen    39432.69         146448.0      6.670    600
auta %>%
  group_by(Marka) %>%
  summarise(sredniaCena = mean(Cena),
            medianaPrzebiegu = median(Przebieg),
            sredniWiek = mean(2013 - Produkcja),
            liczba = n()) %>%
  arrange(sredniaCena)
## # A tibble: 6 × 5
##        Marka sredniaCena medianaPrzebiegu sredniWiek liczba
##       <fctr>       <dbl>            <dbl>      <dbl>  <int>
## 1       Fiat    15772.33          75000.0      6.330    200
## 2    Peugeot    17388.51         127750.0      8.165    400
## 3       Opel    33590.74         120550.0      6.615    800
## 4        Kia    36982.64          42850.0      3.980    200
## 5 Volkswagen    39432.69         146448.0      6.670    600
## 6       Audi    59891.57         150452.5      6.550    200

Rozdział 2.5.7

library("eurostat")
tsdtr210 <- get_eurostat("tsdtr210")
head(tsdtr210)
## # A tibble: 6 × 5
##     unit vehicle    geo       time values
##   <fctr>  <fctr> <fctr>     <date>  <dbl>
## 1     PC BUS_TOT     AT 1990-01-01   11.0
## 2     PC BUS_TOT     BE 1990-01-01   10.6
## 3     PC BUS_TOT     CH 1990-01-01    3.7
## 4     PC BUS_TOT     DE 1990-01-01    9.1
## 5     PC BUS_TOT     DK 1990-01-01   11.3
## 6     PC BUS_TOT     EL 1990-01-01   32.4
library("tidyr")
szeroka <- spread(tsdtr210, time, values)
szeroka %>% filter(geo == "PL")
## # A tibble: 3 × 28
##     unit vehicle    geo `1990-01-01` `1991-01-01` `1992-01-01`
##   <fctr>  <fctr> <fctr>        <dbl>        <dbl>        <dbl>
## 1     PC BUS_TOT     PL         28.1         25.6         24.4
## 2     PC     CAR     PL         41.3         49.8         55.3
## 3     PC     TRN     PL         30.6         24.6         20.3
## # ... with 22 more variables: `1993-01-01` <dbl>, `1994-01-01` <dbl>,
## #   `1995-01-01` <dbl>, `1996-01-01` <dbl>, `1997-01-01` <dbl>,
## #   `1998-01-01` <dbl>, `1999-01-01` <dbl>, `2000-01-01` <dbl>,
## #   `2001-01-01` <dbl>, `2002-01-01` <dbl>, `2003-01-01` <dbl>,
## #   `2004-01-01` <dbl>, `2005-01-01` <dbl>, `2006-01-01` <dbl>,
## #   `2007-01-01` <dbl>, `2008-01-01` <dbl>, `2009-01-01` <dbl>,
## #   `2010-01-01` <dbl>, `2011-01-01` <dbl>, `2012-01-01` <dbl>,
## #   `2013-01-01` <dbl>, `2014-01-01` <dbl>
szeroka2 <- spread(tsdtr210, geo, values)
szeroka2 %>% filter(time == "2010-01-01")
## # A tibble: 3 × 38
##     unit vehicle       time    AT    BE    CH    DE    DK    EL    ES
##   <fctr>  <fctr>     <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1     PC BUS_TOT 2010-01-01  10.6  12.7   5.1     6  10.6  17.3  12.3
## 2     PC     CAR 2010-01-01  78.4  79.7  77.3    86  79.7  81.6  82.3
## 3     PC     TRN 2010-01-01  11.0   7.7  17.6     8   9.8   1.1   5.4
## # ... with 28 more variables: FI <dbl>, FR <dbl>, HU <dbl>, IE <dbl>,
## #   IT <dbl>, LU <dbl>, PL <dbl>, SE <dbl>, SI <dbl>, TR <dbl>, UK <dbl>,
## #   CY <dbl>, IS <dbl>, MT <dbl>, PT <dbl>, CZ <dbl>, SK <dbl>, BG <dbl>,
## #   HR <dbl>, LV <dbl>, NO <dbl>, RO <dbl>, EE <dbl>, MK <dbl>,
## #   EU27 <dbl>, EU28 <dbl>, LT <dbl>, NL <dbl>

Rozdział 2.5.8

szeroka %>% 
  gather(rok, wartosc, -geo, -vehicle) %>%
  tail()
## # A tibble: 6 × 4
##   vehicle    geo        rok wartosc
##    <fctr> <fctr>      <chr>   <chr>
## 1     TRN     EE 2014-01-01     1.9
## 2     TRN     MK 2014-01-01     0.9
## 3     TRN   EU27 2014-01-01     7.6
## 4     TRN   EU28 2014-01-01     7.6
## 5     TRN     LT 2014-01-01       1
## 6     TRN     NL 2014-01-01     9.7
unite(tsdtr210, geo_time, geo, time, sep=":") %>%
  head()
## # A tibble: 6 × 4
##     unit vehicle      geo_time values
##   <fctr>  <fctr>         <chr>  <dbl>
## 1     PC BUS_TOT AT:1990-01-01   11.0
## 2     PC BUS_TOT BE:1990-01-01   10.6
## 3     PC BUS_TOT CH:1990-01-01    3.7
## 4     PC BUS_TOT DE:1990-01-01    9.1
## 5     PC BUS_TOT DK:1990-01-01   11.3
## 6     PC BUS_TOT EL:1990-01-01   32.4
df <- data.frame(daty = c("2004-01-01", "2012-04-15", "2006-10-29", "2010-03-03"), id = 1:4)
df
##         daty id
## 1 2004-01-01  1
## 2 2012-04-15  2
## 3 2006-10-29  3
## 4 2010-03-03  4
separate(df, col=daty, into=c("rok", "miesiac", "dzien"), sep="-")
##    rok miesiac dzien id
## 1 2004      01    01  1
## 2 2012      04    15  2
## 3 2006      10    29  3
## 4 2010      03    03  4

Rozdział 2.6

library("PogromcyDanych")  
data("koty_ptaki")   
head(koty_ptaki)
##   gatunek waga dlugosc predkosc habitat zywotnosc druzyna
## 1  Tygrys  300     2.5       60    Azja        25     Kot
## 2     Lew  200     2.0       80  Afryka        29     Kot
## 3  Jaguar  100     1.7       90 Ameryka        15     Kot
## 4    Puma   80     1.7       70 Ameryka        13     Kot
## 5 Leopard   70     1.4       85    Azja        21     Kot
## 6  Gepard   60     1.4      115  Afryka        12     Kot
koty_ptaki <- read.table(file="http://biecek.pl/R/koty_ptaki.csv", 
          sep=";", dec=",", header=TRUE)
head(koty_ptaki)
##   gatunek waga dlugosc predkosc habitat zywotnosc druzyna
## 1  Tygrys  300     2.5       60    Azja        25     Kot
## 2     Lew  200     2.0       80  Afryka        29     Kot
## 3  Jaguar  100     1.7       90 Ameryka        15     Kot
## 4    Puma   80     1.7       70 Ameryka        13     Kot
## 5 Leopard   70     1.4       85    Azja        21     Kot
## 6  Gepard   60     1.4      115  Afryka        12     Kot

Rozdział 2.6.4

(dane <- read.fwf("http://www.biecek.pl/R/dane/daneFWF.txt", 
               widths=c(1,2,4,5,2)))
##   V1 V2   V3    V4 V5
## 1  1 10  ALA  STOP 13
## 2  1 11  OLA  STOP  5
(dane <- read.fwf("http://www.biecek.pl/R/dane/daneFWF.txt", 
                widths=list(c(1,2,11), c(2,1,11))))
##   V1 V2          V3 V4 V5          V6
## 1  1 10  ALA STOP13 11  1  OLA STOP 5

Rozdział 2.6.5

library("Hmisc")
dane  <- spss.get("http://www.biecek.pl/R/dane/daneSPSS.sav", datevars="urodzony")
head(dane, 4)
##   wiek waga diagnoza   urodzony
## 1   18   62 zdrowy   1989-10-07
## 2   19   66 zdrowy   1988-01-01
## 3   21   98 chory    1986-11-06
## 4   28   74 chory    1979-12-01

Rozdział 2.6.7

library("R.matlab")
daneMat <- readMat("http://www.biecek.pl/R/dane/daneMatlab.MAT")
str(daneMat)
## List of 2
##  $ normalny   : num [1:10, 1:10] 0.1352 -0.139 -1.1634 1.1837 -0.0154 ...
##  $ wykladniczy: num [1:10, 1:10] 0.54 0.859 0.663 1.097 0.837 ...
##  - attr(*, "header")=List of 3
##   ..$ description: chr "MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Sat Nov 03 12:59:22 2007                                                  "
##   ..$ version    : chr "5"
##   ..$ endian     : chr "little"