{base}, {graphics} and
dplyr{base} & {graphics}System graficzny w R składa się z kilku pakietów. Dziś skupimy się na podstawowym systemie graficznym dostępnym w pakietach {base} i {graphics}, które są automatycznie ładowane przy starcie R.
Dlaczego Base Graphics?
plot()Najprostszy i najczęściej używany wykres
# Podstawowy wykres punktowy
plot(x = mtcars$wt, # Oś odciętych OX
y = mtcars$mpg # Oś rzędnych OY
)
Dodajmy opisy osi, tytuł i kolory
plot(x = mtcars$wt,
y = mtcars$mpg,
main = "Zależność w zużyciu paliwa względem wagi samochodu", # tytuł wykresu
xlab = "Waga (1000 lbs)", # podpis osi ox
ylab = "Mile na galon (mpg)", # podpis osi oy
pch = 19, # kształt punktu (19 = wypełnione koło)
col = "steelblue", # kolor punktów
cex = 1.5 # rozmiar punktów
)
Można też cały data.frame wrzucić w funkcje
plot()
# plot() na ramce predefiniowanej
data(mtcars)# opis zbioru: https://www.rdocumentation.org/packages/datasets/versions/3.6.2/topics/mtcars
plot(mtcars)
# Dane: wzrost kurcząt w czasie
data(ChickWeight)
# Wybieramy jedno kurczę
chick1 <- subset(ChickWeight, Chick == 1)
plot(chick1$Time, chick1$weight,
type = "b", # "b" = both (punkty i linie)
main = "Wzrost kurczęcia #1",
xlab = "Czas (dni)",
ylab = "Waga (g)",
col = "darkgreen",
pch = 16,
lwd = 2) # grubość linii
Różne typy linii:
type = "p" - tylko punkty (domyślnie)
type = "l" - tylko linie
type = "b" - punkty i linie
type = "o" - linie przez punkty
type = "h" - pionowe słupki
hist()Rozkład normalny
r <- rnorm(1000) # losowanie
hist(r) # rysowanie
Rozkład normalny zlogarytmizowany
r <- rlnorm(1000) # losowanie
hist(r) # rysowanie
Częstość
hist(mtcars$mpg,
main = "Rozkład zużycia paliwa",
xlab = "Mile na galon",
ylab = "Częstość",
col = "lightblue",
border = "white",
breaks = 15) # liczba przedziałów
Gęstość
hist(mtcars$mpg,
main = "Rozkład zużycia paliwa",
xlab = "Mile na galon",
ylab = "'Gęstość' prawdopodobieństwa",
col = "lightblue",
border = "white",
freq = F, # TRUE: representation of frequencies (częstość), FALSE: probability densities (gęstość prawdopodobieństwa)
breaks = 10)
Majstrowanie przy parametrze dotyczącym liczby przedziałów niewiele w
sumie daje. mtcars to mały data.frame. Inne
sposoby wyboru przedziałów:
# Różne metody wyboru przedziałów
hist(mtcars$mpg, breaks = "Sturges") # domyślna
hist(mtcars$mpg, breaks = "Scott")
hist(mtcars$mpg, breaks = "FD") # Freedman-Diaconis
Dla 32 obserwacji w mtcars, optymalna liczba przedziałów
to około 6-8. Zwiększanie do 15 czy 20 da minimalny efekt, bo po prostu
nie ma wystarczająco dużo danych żeby wypełnić więcej słupków w sensowny
sposób.
Można pobawić się innymi parametrami
# To zmieni wygląd bardziej niż breaks:
hist(mtcars$mpg,
main = "Rozkład zużycia paliwa",
xlab = "Mile na galon",
ylab = "Częstość",
col = rainbow(15), # kolory słupków
border = "black", # kolor obramowania
density = 20, # linie wypełnienia
angle = 45, # kąt linii
xlim = c(5, 40), # zakres osi X
ylim = c(0, 15), # zakres osi Y
las = 1 # orientacja etykiet
)
boxplot()Standardowe prostokątne pudełka bez wcięć - klasyczny boxplot.
boxplot(mpg ~ cyl, data = mtcars,
main = "Zużycie paliwa według liczby cylindrów",
xlab = "Liczba cylindrów",
ylab = "Mile na galon",
col = c("lightpink", "lightblue", "lightgreen"),
notch = FALSE) # <-
boxplot(mpg ~ cyl, data = mtcars,
main = "Zużycie paliwa według liczby cylindrów",
xlab = "Liczba cylindrów",
ylab = "Mile na galon",
col = c("lightpink", "lightblue", "lightgreen"),
notch = TRUE) # wcięcie pokazuje CI dla mediany
notch = TRUE Tworzy wcięcia (notches) po bokach pudełek
- to charakterystyczne “zwężenia” wokół mediany, które tworzą kształt
przypominający klepsydrę lub wazę.
Co to daje?
barplot()# Zliczamy samochody według liczby cylindrów i przypisujemy do obiektu
cylinder_counts <- table(mtcars$cyl)
barplot(cylinder_counts, # <- inaczej niż poprzednio, nie mtcars czy któraś ze zmiennych
main = "Liczba samochodów według cylindrów",
xlab = "Liczba cylindrów",
ylab = "Liczba samochodów",
col = "coral",
border = "white")
pie()pie(auta) # bez "fajerwerków"
WYZWANIE
Czy potrafiliby Państwo oszacować proporcje? Błąd może wynieść max 2%.
pie(auta,
main = "Samochody",
col = hcl.colors(length(auta), palette = "viridis"),
labels = c("Pon","Wt","Śr","Czw","Pt"))
paleta2 <- c("white","grey70","grey90","grey50","black")
# Obliczamy udziały
auta_labels <- round(auta/sum(auta) * 100, 1) # przypominając sobie również funkcję round()
# robimy labelki
auta_labels <- paste(auta_labels, "%", sep = "") # sklejamy wyliczenia ze znakiem procent (%)
pie(auta,
main = "Samochody - sprzedaż tygodniowa",
col = paleta2, # używamy wcześniej zdefiniowanych
labels = auta_labels, # używamy wcześniej zdefiniowanych
cex = 0.8
)
# legenda
dniTygodnia = c("Pon","Wt","Śr","Czw","Pt") # zawartość
# dodanie do rysunku
legend(1.5, 0.5,
dniTygodnia,
fill = paleta2)
# Prosta macierz z ocenami
oceny <- c(3.5, 4.2, 3.8, 4.5, 3.0)
names(oceny) <- c("Jan", "Anna", "Piotr", "Ewa", "Marek")
dotchart(oceny,
main = "Oceny studentów",
xlab = "Ocena")
# Posortujmy samochody według mocy (hp) i zobaczmy ranking
mtcars_sorted <- mtcars[order(mtcars$hp),]
dotchart(mtcars_sorted$hp,
labels = rownames(mtcars_sorted),
cex = 0.7, # rozmiar etykiet
main = "Ranking samochodów według mocy silnika",
xlab = "Moc (KM)",
col = ifelse(mtcars_sorted$cyl == 4, "lightblue",
ifelse(mtcars_sorted$cyl == 6, "lightgreen", "lightpink")), # zagnieżdżony ifelse() - o tym później
pch = 19, # pełne kółka
pt.cex = 1.2) # rozmiar punktów
# Dodajmy legendę
legend("bottomright",
legend = c("4 cylindry", "6 cylindrów", "8 cylindrów"),
col = c("lightblue", "lightgreen", "lightpink"),
pch = 19,
cex = 0.8)
Podsumowanie najpopularniejszych systemów podawania kolorów w
R:
Nazwy kolorów (słownie): W HTML i CSS można używać nazw kolorów, takich jak red, blue, green, black, white, itp. Jest to wygodne, ale ograniczone do standardowych nazw.
HEX (szesnastkowy): Kolory są reprezentowane jako
sześciocyfrowe liczby szesnastkowe, np. "#FFFFFF" dla
białego lub "#000000" dla czarnego. Każda para cyfr-liter
reprezentuje intensywność czerwonego, zielonego i niebieskiego koloru
(RGB).
RGB (Red, Green, Blue): Kolory są określane przez trzy
wartości liczbowe w zakresie od 0 do 255, np.
rgb(255, 255, 255) dla białego lub
rgb(0, 0, 0) dla czarnego. Każda wartość reprezentuje
intensywność odpowiedniego koloru.
Po ile kolorów poprzez nazwę możemy sięgnąć?
length(colors())
## [1] 657
Wyrzucenie do konsoli pierwszych kilkudziesięciu nazw
print(colors(), max = 33)
## [1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
## [5] "antiquewhite2" "antiquewhite3" "antiquewhite4" "aquamarine"
## [9] "aquamarine1" "aquamarine2" "aquamarine3" "aquamarine4"
## [13] "azure" "azure1" "azure2" "azure3"
## [17] "azure4" "beige" "bisque" "bisque1"
## [21] "bisque2" "bisque3" "bisque4" "black"
## [25] "blanchedalmond" "blue" "blue1" "blue2"
## [29] "blue3" "blue4" "blueviolet" "brown"
## [33] "brown1"
## [ reached getOption("max.print") -- omitted 624 entries ]
Wyszukanie wszystkich “niebieskich” kolorów
grep("blue", colors(), value = TRUE)
## [1] "aliceblue" "blue" "blue1" "blue2"
## [5] "blue3" "blue4" "blueviolet" "cadetblue"
## [9] "cadetblue1" "cadetblue2" "cadetblue3" "cadetblue4"
## [13] "cornflowerblue" "darkblue" "darkslateblue" "deepskyblue"
## [17] "deepskyblue1" "deepskyblue2" "deepskyblue3" "deepskyblue4"
## [21] "dodgerblue" "dodgerblue1" "dodgerblue2" "dodgerblue3"
## [25] "dodgerblue4" "lightblue" "lightblue1" "lightblue2"
## [29] "lightblue3" "lightblue4" "lightskyblue" "lightskyblue1"
## [33] "lightskyblue2" "lightskyblue3" "lightskyblue4" "lightslateblue"
## [37] "lightsteelblue" "lightsteelblue1" "lightsteelblue2" "lightsteelblue3"
## [41] "lightsteelblue4" "mediumblue" "mediumslateblue" "midnightblue"
## [45] "navyblue" "powderblue" "royalblue" "royalblue1"
## [49] "royalblue2" "royalblue3" "royalblue4" "skyblue"
## [53] "skyblue1" "skyblue2" "skyblue3" "skyblue4"
## [57] "slateblue" "slateblue1" "slateblue2" "slateblue3"
## [61] "slateblue4" "steelblue" "steelblue1" "steelblue2"
## [65] "steelblue3" "steelblue4"
Przykład wizualizacji pierwszych 69 kolorów
n <- 69
plot(1:n, rep(1, n), col = colors()[1:n], pch = 19, cex = 3,
main = "Pierwsze 69 kolorów w R", xlab = "", ylab = "")
pch)plot(1:25, rep(1, 25),
pch = 1:25,
cex = 2,
ylim = c(0.5, 1.5),
main = "Dostępne symbole (pch = 1:25)",
xlab = "Numer symbolu",
ylab = "")
text(1:26,
rep(0.7, 25),
labels = 1:25,
cex = 0.8)
plot(mtcars$wt,
mtcars$mpg,
main = "Dostosowane osie",
xlab = "Waga",
ylab = "MPG",
pch = 19, # typ punktu (19 = wypełnione kółko)
col = "navy", # kolor punktów (granatowy)
xlim = c(1, 6), # zakres osi X
ylim = c(10, 35), # zakres osi Y
las = 1) # etykiety poziomo
# Dodajemy siatkę
grid(col = "gray", # kolor siatki - szry
lty = "dotted") # typ linii - kropkowana
# Dodajemy linię trendu
abline( # abline -> rysuje linię na podstawie modelu
lm(mpg ~ wt, data = mtcars),
col = "red",
lwd = 2 # grubość linii (line width = 2)
)
plot(iris$Sepal.Length, iris$Sepal.Width,
pch = 19,
col = c("red", "blue", "green")[iris$Species],
main = "Wymiary działek kielicha",
xlab = "Długość", ylab = "Szerokość")
legend("topright", # pozycja
legend = levels(iris$Species), # etykiety
col = c("red", "blue", "green"), # kolory
pch = 19, # symbol
title = "Gatunek") # tytuł legendy
par(mfrow)
Wiele Wykresów na Jednym Rysunku
par(mfrow = c(2, 2)) # 2 wiersze, 2 kolumny
# Wykres 1
plot(mtcars$wt, mtcars$mpg, main = "Scatter plot", pch = 19, col = "blue")
# Wykres 2
hist(mtcars$mpg, main = "Histogram", col = "lightgreen", border = "white")
# Wykres 3
boxplot(mpg ~ cyl, data = mtcars, main = "Boxplot", col = "coral")
# Wykres 4
barplot(table(mtcars$cyl), main = "Barplot", col = "steelblue")
par(mfrow = c(1, 1)) # Reset do jednego wykresu
# Podstawowy wykres
plot(mtcars$wt,
mtcars$mpg,
pch = 19,
col = "gray",
main = "Dodawanie elementów",
xlab = "Waga",
ylab = "MPG")
# Dodaj linię trendu
abline(lm(mpg ~ wt, data = mtcars), col = "red", lwd = 2)
# Dodaj linie poziomą i pionową
abline(h = mean(mtcars$mpg),
col = "blue",
lty = 2)
abline(v = mean(mtcars$wt),
col = "blue",
lty = 2)
# Dodaj tekst
text(5, 30, "Średnie zaznaczone\n niebieskimi liniami", col = "blue")
# Dodaj punkty
points(mtcars$wt[mtcars$mpg > 30],
mtcars$mpg[mtcars$mpg > 30],
pch = 19,
col = "green",
cex = 2)
pairs()# pairs() - tworzy macierz wykresów rozproszenia (scatterplot matrix)
pairs(iris[, 1:4], # pierwsze 4 kolumny ze zbioru iris (pomiary kwiatów)
col = iris$Species, # kolor punktów, iris$Species przypisuje kolor według gatunku
pch = 19, # pch=19 - wypełnione kółka jako symbole punktów
main = "Macierz wykresów dla zbioru Iris") # tytuł całej macierzy wykresów
# Główny wykres
plot(mtcars$wt, mtcars$mpg,
pch = 19, col = "steelblue",
main = "Wykres z histogramami marginalnymi",
xlab = "Waga", ylab = "MPG")
# Ustawiamy layout
layout( # organizuje okno graficzne w siatkę
matrix(c(2, 0, 1, 3), 2, 2, byrow = TRUE), # określa rozmieszczenie paneli
widths = c(3, 1),
heights = c(1, 3)
)
# Górny histogram
par(mar = c(0, 4, 3, 0)) # par(mar = c(dół, lewo, góra, prawo))
hist(mtcars$wt, main = "", xlab = "", ylab = "",
col = "lightblue", axes = FALSE)
# Prawy histogram
par(mar = c(4, 0, 0, 3))
hist(mtcars$mpg, main = "", xlab = "", ylab = "",
col = "lightblue", axes = FALSE, horiz = TRUE)
par(mfrow = c(1, 1)) # Reset
Podstawowe funkcje:
Funkcje TWORZĄCE nowy wykres: plot(),
hist(), barplot(),
boxplot()
Funkcje DODAJĄCE do wykresu: points(),
lines(), text(), abline(),
legend(), rect(),
polygon()
# Przykład z warstwami
plot(1:10, type = "n", main = "Wykres warstwowy") # pusty canvas
rect(2, 2, 8, 8, col = "lightblue") # warstwa 1
points(1:10, 1:10, col = "red", pch = 19, cex = 2) # warstwa 2
lines(1:10, 1:10, col = "blue", lwd = 3) # warstwa 3
# To tworzy NOWY wykres (i zastępuje poprzedni)
plot(1:10)
# To też tworzy NOWY wykres (poprzedni zaorany)
plot(1:5, col = "red")
# Stwórz bazowy wykres (NOWY - kolejny, analogicznie jak wcześniej)
plot(1:10, type = "l", col = "blue")
# DODAJ do niego (nie zastępując)
points(1:10, col = "red", pch = 19) # dodaj punkty
lines(1:10, lwd = 2, col = "green") # dodaj linię
text(5, 5, "Tekst", col = "purple") # dodaj tekst
abline(h = 5, lty = 2) # dodaj linię poziomą
Najważniejsze argumenty funkcji par():
# Wyświetl bieżące ustawienia (tylko kilka)
par()[c("mar", "mfrow", "bg")]
## $mar
## [1] 5.1 4.1 4.1 2.1
##
## $mfrow
## [1] 1 1
##
## $bg
## [1] "white"
| Parametr | Opis | Przykład |
|---|---|---|
col |
Kolor | col = "red" |
pch |
Kształt punktu | pch = 19 |
cex |
Rozmiar | cex = 1.5 |
lwd |
Grubość linii | lwd = 2 |
lty |
Typ linii | lty = "dashed" |
main |
Tytuł główny | main = "Mój wykres" |
xlab, ylab |
Etykiety osi | xlab = "Oś X" |
las |
Orientacja etykiet | las = 1 (poziomo) |
xlim, ylim |
Zakresy osi | xlim = c(0, 10) |
Czym są parametry graficzne?
To ustawienia, które kontrolują jak wyglądają wszystkie kolejne wykresy, np.:
rozmiary marginesów
liczba paneli na jednym wykresie
kolory, czcionki, grubości linii (domyślne)
orientacja tekstu, itd.
Podstawowe przykłady:
# Zobacz wszystkie aktualne parametry
# par()
# Ustaw 4 wykresy w siatce 2x2
par(mfrow = c(2, 2))
plot(1:100)
plot(rlnorm(1000))
hist(rnorm(1000))
boxplot(rnorm(500))
# Wróć do 1 wykresu
par(mfrow = c(1, 1))
Najczęściej używane parametry:
# MARGINESY (bottom, left, top, right)
par(mar = c(5, 4, 4, 2)) # domyślne
par(mar = c(2, 2, 2, 2)) # mniejsze
# UKŁAD WYKRESÓW
par(mfrow = c(2, 3)) # 2 rzędy, 3 kolumny (wypełnianie po wierszach)
par(mfcol = c(2, 3)) # 2 rzędy, 3 kolumny (wypełnianie po kolumnach)
# KOLORY I STYLE
par(col = "blue") # domyślny kolor linii/punktów
par(bg = "lightgray") # kolor tła
par(lwd = 2) # grubość linii
# CZCIONKI
par(cex = 1.5) # rozmiar tekstu (1 = normalny)
par(family = "serif") # rodzina czcionek
Ważne: zachowywanie i przywracanie ustawień wykresów
# ZAPISZ obecne ustawienia PRZED zmianą
old_par <- par(no.readonly = TRUE)
# Zmień co chcesz
par(mfrow = c(2, 2), mar = c(2, 2, 2, 2))
# ... twoje wykresy ...
# PRZYWRÓĆ stare ustawienia
par(old_par)
dev.off()
# Sprawdź aktywne urządzenie graficzne
dev.cur() # <- null device o numerze 1 to domyślny stan - oznacza, że nie mamy otwartego żadnego aktywnego urządzenia graficznego.
## png
## 2
# Lista wszystkich otwartych urządzeń
dev.list()
## png
## 2
# Zamknij bieżące urządzenie (resetuje canvas)
dev.off()
## null device
## 1
# Zamknij wszystkie
graphics.off()
Plik rastrowy
# Zapisz jako PNG
png( # przekierowuje wszystkie kolejne polecenia rysujące do pliku PNG zamiast na ekran.
"moj_wykres.png", # nazwa pliku, który zostanie utworzony w aktualnym folderze roboczym
width = 800,
height = 600 # rozmiary grafiki w pikselach, bo png jest rastrowy (piksele — bitmapa)
# res = DPI (dots per inch), czyli rozdzielczość
)
# tworzenie wykresu
plot(mtcars$wt, mtcars$mpg, pch = 19, col = "blue")
dev.off() # Kończy zapis do pliku, „zamyka” grafikę i finalizuje plik PNG. Po tej linijce obraz jest gotowy i zapisany
Plik wektorowy
# Analogicznie można zapisac grafikę do pdf
pdf(# Zapisz jako PDF (wysoka jakość)
"moj_wykres.pdf",
width = 8,
height = 6 # 8×6 cali, nie pikseli, bo pdf jest wektorowy (kształty — nieskończona rozdzielczość)
)
plot(mtcars$wt, mtcars$mpg, pch = 19, col = "blue")
dev.off() # j.w.
WYZWANIE
Odtwórz ten wykres używając base i
graphics!
Dataset: mtcars
# Przygotowanie palety kolorów
kolory <- c("#FF6B6B", "#4ECDC4", "#45B7D1", "#FFA07A", "#98D8C8",
"#F7DC6F", "#BB8FCE", "#85C1E2", "#F8B739", "#52B788")
# Główny wykres
par(mfrow = c(1, 1), # jedna ramka
mar = c(5, 5, 4, 8), # marginesy: dół, lewo, góra, prawo
bg = "#F5F5F0", # kolor tła
family = "sans") # czcionka
# Wykres punktowy z wieloma parametrami
plot(mtcars$wt, mtcars$mpg,
main = "Analiza zużycia paliwa vs waga pojazdu",
sub = "Dane: mtcars | Rozmiar punktu = moc silnika",
xlab = "Waga pojazdu (1000 lbs)",
ylab = "Zużycie paliwa (mpg)",
pch = 21, # puste kółka z obramowaniem
col = "black", # kolor obramowania
bg = kolory[mtcars$cyl/2], # kolor wypełnienia wg cylindrów
cex = mtcars$hp/100, # rozmiar wg mocy
lwd = 2, # grubość obramowania
xlim = c(1, 6),
ylim = c(8, 36),
las = 1, # etykiety poziomo
cex.main = 1.5, # rozmiar tytułu
cex.lab = 1.2, # rozmiar etykiet osi
col.main = "#2C3E50", # kolor tytułu
col.lab = "#34495E", # kolor etykiet
font.main = 2, # pogrubienie tytułu
col.sub = "#7F8C8D") # kolor podtytułu
# Siatka w tle
grid(nx = 10, ny = 10,
col = "#BDC3C7",
lty = "dotted",
lwd = 0.5)
# Linia trendu
model <- lm(mpg ~ wt, data = mtcars)
abline(model,
col = "#E74C3C",
lwd = 3,
lty = 2)
# Dodatkowe linie referencyjne
abline(h = mean(mtcars$mpg),
col = "#3498DB",
lwd = 2,
lty = 3)
abline(v = mean(mtcars$wt),
col = "#2ECC71",
lwd = 2,
lty = 3)
# Adnotacje tekstowe
text(5.2, 33,
labels = paste("R^2 =", round(summary(model)$r.squared, 3)),
col = "#E74C3C",
font = 2,
cex = 1.1)
text(5.2, 30.5,
labels = "Silna korelacja ujemna",
col = "#E74C3C",
cex = 0.9,
font = 3)
# Oznaczenie ekstremalnych punktów
najciezszy <- which.max(mtcars$wt)
arrows(x0 = mtcars$wt[najciezszy] - 0.3,
y0 = mtcars$mpg[najciezszy] + 2,
x1 = mtcars$wt[najciezszy],
y1 = mtcars$mpg[najciezszy],
col = "#9B59B6",
lwd = 2,
length = 0.1)
text(mtcars$wt[najciezszy] - 0.5,
mtcars$mpg[najciezszy] + 3,
labels = rownames(mtcars)[najciezszy],
col = "#9B59B6",
font = 2,
cex = 0.8)
# Legenda cylinders
legend("topright",
inset = c(-0.25, 0), # przesunięcie na prawo
legend = c("4 cyl", "6 cyl", "8 cyl"),
pch = 21,
pt.bg = kolory[c(2, 3, 4)],
col = "black",
pt.cex = 1.5,
pt.lwd = 2,
title = "Cylindry",
title.col = "#2C3E50",
bty = "n", # bez ramki
xpd = TRUE, # rysuj poza obszarem wykresu
cex = 0.9)
# Legenda dla linii
legend("bottomleft",
legend = c("Regresja", "Średnia MPG", "Średnia waga"),
col = c("#E74C3C", "#3498DB", "#2ECC71"),
lty = c(2, 3, 3),
lwd = c(3, 2, 2),
bty = "n",
cex = 0.8)
# Ramka wokół wykresu
box(col = "#34495E", lwd = 2)
# Reset parametrów
par(mfrow = c(1, 1), mar = c(5, 4, 4, 2) + 0.1, bg = "white")
Base i graphics w
R to potężne narzędzie do:
Dla zmiennych tekstowych o ograniczonej liczbie poziomów (są to
de facto zmienne jakościowe) możemy wyświetlić tabelę częstości
za pomocą table()
data(mtcars)
table(mtcars$cyl)
##
## 4 6 8
## 11 7 14
Pokazuje ona jedynie liczebności poszczególnych kategorii.
Moglibyśmy, co już widzieliśmy wcześniej, zrobic tak
prop.table(table(mtcars$cyl)) * 100
##
## 4 6 8
## 34.375 21.875 43.750
Więcej informacji (i bez kombinowania) możemy zobaczyć używając
funkcji tabyl() z pakietu {janitor}
# install.packages("janitor")
library(janitor)
tabyl(mtcars$cyl)
## mtcars$cyl n percent
## 4 11 0.34375
## 6 7 0.21875
## 8 14 0.43750
I drobne zabiegi estetyczne
podsumowanie <- data.frame(tabyl(mtcars$cyl))
names(podsumowanie) <- c("Cylindry", "Liczba aut", "Udział")
podsumowanie$Procent <- paste0(podsumowanie$`Udział` * 100, "%")
podsumowanie
## Cylindry Liczba aut Udział Procent
## 1 4 11 0.34375 34.375%
## 2 6 7 0.21875 21.875%
## 3 8 14 0.43750 43.75%
qplot
qplot (skrót od *quick plot**) to funkcja w języku
R, która pochodzi z pakietu ggplot2 i służy do szybkiego
tworzenia wykresów. Jest to prostsza i bardziej intuicyjna alternatywa
dla funkcji ggplot(), choć mniej elastyczna i mniej
rozbudowana. Pozwala w szybki sposób tworzyć różne typy wykresów, takie
jak wykresy punktowe, liniowe, histogramy czy wykresy słupkowe, przy
minimalnym nakładzie pracy. Bliżej samemu pakietowi ggplot2
przyjrzymy się na innych zajęciach. Teraz chodzi bardziej o poznanie
szybkiego i prostego narzędzia do wizualizacji. Sprawdźmy ją zanim
całkowicie zaniknie.
Cechy qplot():
Automatyczne dopasowanie typu wykresu: W
zależności od przekazanych danych, qplot() sam
automatycznie dobiera odpowiedni typ wykresu (np. punktowy, liniowy,
histogram).
Prostota: Argumenty funkcji qplot
są łatwiejsze do zrozumienia dla początkujących. Przykładowo, do
stworzenia podstawowego wykresu punktowego wystarczy podać zmienne
x i y.
Mniej skomplikowana składnia: W porównaniu do
bardziej rozbudowanej funkcji ggplot(),
qplot() wymaga mniej kodu.
Funkcjonalność ggplot2: Mimo
prostoty, qplot() dziedziczy wiele funkcji z pełnego
systemu wykresów ggplot2, co daje użytkownikom możliwość
łatwej rozbudowy wykresów.
library(ggplot2) # pakiet z którego weźmiemy funkcję gplot()
# Wykres słupkowy kategorii cyl z ramki danych mtcars
qplot(factor(cyl), # <- dlaczego musi być factor?
data = mtcars,
geom = "bar")
# qplot(factor(cyl), data = mtcars)
# Histogram zmiennej mpg (miles per gallon)
qplot(mpg,
data = mtcars,
geom = "histogram",
bins = 20,
fill=I("light blue")
)
# qplot(mpg, data = mtcars)
# Wykres gęstości dla zmiennej mpg
qplot(x = mpg,
data = mtcars,
geom = "density",
fill=I("lightblue"),
alpha=I(0.5)
)
qplot(y = mpg,
data = mtcars,
geom = "density",
fill=I("lightblue"),
alpha=I(0.5)
)
# Wykres pudełkowy dla mpg w podziale na liczbę cylindrów
qplot(factor(cyl),
mpg, # a measure of the average distance traveled per unit of energy consumed
data = mtcars,
geom = "boxplot",
fill=I("lightgreen"))
# Wykres punktowy z kolorami zależnymi od liczby cylindrów
qplot(mpg,
wt,
data = mtcars,
color = factor(cyl))
# Wykres liniowy dla mpg z grupowaniem według liczby cylindrów
qplot(x = hp,
y = mpg,
data = mtcars,
geom = "line",
color = factor(cyl))
# Wykres punktowy z linią regresji
qplot(mpg,
wt, # 1000 lbs = 453.59237
data = mtcars,
geom = c("point", "smooth"),
method = "lm")
# Wykres punktowy z rozmiarem punktów zależnym od liczby koni mechanicznych (hp)
qplot(mpg,
wt,
data = mtcars,
size = hp)
# Wykres heksagonalny (hexbin)
# install.packages("hexbin")
library(hexbin)
qplot(mpg,
wt,
data = mtcars,
geom = "hex")
Diagram Venna przedstawia wszystkie możliwe kombinacje i zależności między zbiorami, niezależnie od tego, czy są one puste. Każda część wykresu, która reprezentuje przecięcie, istnieje nawet wtedy, gdy faktycznie nie zawiera elementów.
# Instalacja pakietu {VennDiagram}, jeśli jeszcze nie jest zainstalowany
# install.packages("VennDiagram")
# Załadowanie pakietu
library(VennDiagram)
# Dane do stworzenia diagramu Venna (trzy zbiory)
set1 <- c("A", "B", "C", "D", "C", "D")
set2 <- c("B", "C", "E", "F", "C", "D")
set3 <- c("C", "D", "G", "H", "C", "D")
# Tworzenie diagramu Venna
venn.plot <- venn.diagram(
x = list(set1 = set1, set2 = set2, set3 = set3),
category.names = c("Set 1", "Set 2", "Set 3"),
filename = NULL
)
# Wyświetlenie diagramu Venna
grid.draw(venn.plot)
Wykres Eulera pokazuje tylko te części, które faktycznie istnieją. Jeśli dwa zbiory nie mają wspólnych elementów, nie będą miały wspólnej części na wykresie. Jest bardziej elastyczny i realistyczny, bo nie pokazuje obszarów, które nie mają faktycznego odpowiednika w danych zbiorach
# Instalacja i załadowanie pakietu {eulerr} (jeśli jeszcze nie jest zainstalowany)
# install.packages("eulerr")
library(eulerr)
# Dane do diagramu Eulera
set1 <- c("A", "B", "C", "D", "F", "G", "H", "I", "J", "K")
set2 <- c("B", "C", "E", "F", "D", "Z", "X")
set3 <- c("C", "D", "G", "H")
# Utworzenie listy zestawów danych
sets_list <- list(Set1 = set1, Set2 = set2, Set3 = set3)
# Utworzenie diagramu Eulera
euler_plot <- euler(sets_list)
# Wyświetlenie diagramu Eulera
plot(euler_plot, quantities = TRUE, main = "Diagram Eulera dla zestawów danych")
dplyrPo wczytaniu danych kolejnym etapem analizy jest czyszczenie zbioru
danych, wykrywanie braków danych oraz przekształcanie zmiennych. Poznamy
najpopularniejszy pakiet do przetwarzania danych dplyr,
będący obecnie standardem w świecie R-owym i jednocześnie elementem
projektu tidyverse, czyli uniwersum pakietów
rozwijanych przez RStudio (więcej informacji znajdziesz pod tym linkiem:
https://www.tidyverse.org/).
Pakiet dplyr jest wzorowany na języku SQL - dlatego
osoby, które pracowały kiedyś z bazami danych poczują się jak w
domu.
Poznamy:
filter() (filtrowanie zbioru),select() (wybór kolumn),rename() (zmiana nazwy zmiennych),arrange() (sortowanie),mutate() (tworzenie nowych zmiennych).# install.packages('dplyr') # instalacja i wczytanie pakietu
library(dplyr)
# wczytanie danych
a <- read.csv('dane/footballers.csv',
sep = ';',
stringsAsFactors = F)
Funkcja filter()
# Wybór osób powyżej 25 lat
head(
filter(a, age > 25)
, 5)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 50.0 29 175 69 8 8 2 108
## 2 20.0 26 180 70 4 1 0 11
## 3 8.0 29 177 74 0 0 1 45
## 4 5.0 29 180 68 0 8 0 41
## 5 2.5 31 180 78 0 0 0 20
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 44 70 233 23 35 724 328
## 2 0 9 23 44 39 5 83 39
## 3 0 0 1 130 28 20 283 118
## 4 0 0 7 190 22 27 344 111
## 5 5 0 1 62 30 4 154 56
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 9 14.700 david villa
## 2 0 0 0 0 0 51 1.730 nilmar
## 3 0 0 0 0 0 110 0.012 aduriz
## 4 0 0 0 0 0 718 14.200 garcia
## 5 0 0 0 0 0 1693 0.877 alonso
# Wybór osób w wieku od 21 do 25
head(
filter(a, age > 21 & age < 25)
, 5)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 100 23 169 67 25 0 16 87
## 2 25 23 169 64 4 0 6 12
## 3 3 22 175 72 0 0 0 2
## 4 25 23 184 73 13 0 2 52
## 5 35 23 183 82 2 0 1 59
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 14 52 198 35 47 600 275
## 2 0 1 11 38 25 4 71 37
## 3 0 0 0 6 11 0 7 4
## 4 0 11 32 132 57 17 453 184
## 5 5 7 12 131 42 29 335 166
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 1 0 0 0 0 1 57.20 lionel messi
## 2 0 0 0 0 0 57 9.58 pedro
## 3 0 0 0 0 0 1713 3.98 jeffren
## 4 0 0 0 0 1 756 9.61 benzema
## 5 0 0 0 0 0 3 4.49 higuain
# Podobnie, tylko za pomocą funkcji between
head(
filter(a, between(age, 21, 25))
, 5)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 100 23 169 67 25 0 16 87
## 2 25 23 169 64 4 0 6 12
## 3 3 22 175 72 0 0 0 2
## 4 25 23 184 73 13 0 2 52
## 5 35 23 183 82 2 0 1 59
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 14 52 198 35 47 600 275
## 2 0 1 11 38 25 4 71 37
## 3 0 0 0 6 11 0 7 4
## 4 0 11 32 132 57 17 453 184
## 5 5 7 12 131 42 29 335 166
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 1 0 0 0 0 1 57.20 lionel messi
## 2 0 0 0 0 0 57 9.58 pedro
## 3 0 0 0 0 0 1713 3.98 jeffren
## 4 0 0 0 0 1 756 9.61 benzema
## 5 0 0 0 0 0 3 4.49 higuain
# Wybierzmy osoby o danym wieku i wzroście
head(
filter(a, age == 23 & height <= 180)
, 5)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 100.0 23 169 67 25 0 16 87
## 2 25.0 23 169 64 4 0 6 12
## 3 20.0 23 171 72 3 2 6 43
## 4 3.0 23 175 72 0 0 0 1
## 5 7.5 23 175 70 0 4 2 24
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 14 52 198 35 47 600 275
## 2 0 1 11 38 25 4 71 37
## 3 0 3 18 136 40 19 407 188
## 4 0 1 6 0 5 0 8 1
## 5 10 5 28 176 30 4 64 33
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 1 0 0 0 0 1 57.200 lionel messi
## 2 0 0 0 0 0 57 9.580 pedro
## 3 0 0 0 0 0 22 2.510 rossi
## 4 0 0 0 0 0 1368 0.122 biram diouf
## 5 0 0 0 0 0 1924 0.044 dembele
# Można również:
head(
filter(a, age == 23, height <= 180)
, 5)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 100.0 23 169 67 25 0 16 87
## 2 25.0 23 169 64 4 0 6 12
## 3 20.0 23 171 72 3 2 6 43
## 4 3.0 23 175 72 0 0 0 1
## 5 7.5 23 175 70 0 4 2 24
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 14 52 198 35 47 600 275
## 2 0 1 11 38 25 4 71 37
## 3 0 3 18 136 40 19 407 188
## 4 0 1 6 0 5 0 8 1
## 5 10 5 28 176 30 4 64 33
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 1 0 0 0 0 1 57.200 lionel messi
## 2 0 0 0 0 0 57 9.580 pedro
## 3 0 0 0 0 0 22 2.510 rossi
## 4 0 0 0 0 0 1368 0.122 biram diouf
## 5 0 0 0 0 0 1924 0.044 dembele
# Wybierzmy osoby w wieku 20 LUB 23 lata
head(
filter(a, age == 23 | age == 20)
, 5)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 12 20 173 65 5 0 7 20
## 2 100 23 169 67 25 0 16 87
## 3 25 23 169 64 4 0 6 12
## 4 25 23 184 73 13 0 2 52
## 5 35 23 183 82 2 0 1 59
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 0 1 47 67 11 139 62
## 2 0 14 52 198 35 47 600 275
## 3 0 1 11 38 25 4 71 37
## 4 0 11 32 132 57 17 453 184
## 5 5 7 12 131 42 29 335 166
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 828 1.04 bojan krkic
## 2 1 0 0 0 0 1 57.20 lionel messi
## 3 0 0 0 0 0 57 9.58 pedro
## 4 0 0 0 0 1 756 9.61 benzema
## 5 0 0 0 0 0 3 4.49 higuain
Zwróćmy uwagę, że w funkcji filter() możemy używać
również operatora %in%
c("lionel messi", "sinama", "palladino", "rodallega", "ljuboja", "ebbers", "macheda")
## [1] "lionel messi" "sinama" "palladino" "rodallega" "ljuboja"
## [6] "ebbers" "macheda"
# Tradycyjnie napisalibyśmy:
head(
filter(a, name == 'lionel messi' | name == 'sinama' | name == 'palladino' |
name == 'rodallega' | name == 'ljuboja' | name == 'ebbers' | name == 'macheda')
, 10)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 100.0 23 169 67 25 0 16 87
## 2 4.0 26 175 69 1 0 4 28
## 3 1.5 19 184 77 0 0 0 3
## 4 7.5 25 181 72 0 0 0 13
## 5 7.0 26 182 68 0 0 0 11
## 6 1.0 33 192 88 0 0 0 2
## 7 2.5 32 189 78 0 0 0 16
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 14 52 198 35 47 600 275
## 2 1 0 1 92 61 13 162 66
## 3 0 0 0 8 7 2 20 7
## 4 0 8 34 47 6 4 188 63
## 5 0 0 3 67 43 7 101 42
## 6 30 0 0 77 10 11 151 73
## 7 0 1 18 39 17 3 135 49
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 1 0 0 0 0 1 57.200 lionel messi
## 2 0 0 0 0 0 1528 0.083 sinama
## 3 0 0 0 0 0 1815 0.458 macheda
## 4 0 0 0 0 0 346 0.212 rodallega
## 5 0 0 0 0 0 1431 0.133 palladino
## 6 0 0 0 0 0 1076 0.069 ebbers
## 7 0 0 0 0 0 713 0.318 ljuboja
# Strasznie długo. Spróbujmy wykorzystać operator `%in%`:
head(
filter(a, name %in% c("lionel messi", "sinama", "palladino", "rodallega", "ljuboja", "ebbers", "macheda"))
, 10)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 100.0 23 169 67 25 0 16 87
## 2 4.0 26 175 69 1 0 4 28
## 3 1.5 19 184 77 0 0 0 3
## 4 7.5 25 181 72 0 0 0 13
## 5 7.0 26 182 68 0 0 0 11
## 6 1.0 33 192 88 0 0 0 2
## 7 2.5 32 189 78 0 0 0 16
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 14 52 198 35 47 600 275
## 2 1 0 1 92 61 13 162 66
## 3 0 0 0 8 7 2 20 7
## 4 0 8 34 47 6 4 188 63
## 5 0 0 3 67 43 7 101 42
## 6 30 0 0 77 10 11 151 73
## 7 0 1 18 39 17 3 135 49
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 1 0 0 0 0 1 57.200 lionel messi
## 2 0 0 0 0 0 1528 0.083 sinama
## 3 0 0 0 0 0 1815 0.458 macheda
## 4 0 0 0 0 0 346 0.212 rodallega
## 5 0 0 0 0 0 1431 0.133 palladino
## 6 0 0 0 0 0 1076 0.069 ebbers
## 7 0 0 0 0 0 713 0.318 ljuboja
head(
filter(a, !name %in% c("lionel messi", "sinama", "palladino", "rodallega", "ljuboja", "ebbers", "macheda"))
, 10)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 12 20 173 65 5 0 7 20
## 2 25 23 169 64 4 0 6 12
## 3 3 22 175 72 0 0 0 2
## 4 50 29 175 69 8 8 2 108
## 5 25 23 184 73 13 0 2 52
## 6 35 23 183 82 2 0 1 59
## 7 90 25 185 75 23 0 11 101
## 8 20 26 180 70 4 1 0 11
## 9 20 23 171 72 3 2 6 43
## 10 3 24 179 72 0 0 0 7
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 0 1 47 67 11 139 62
## 2 0 1 11 38 25 4 71 37
## 3 0 0 0 6 11 0 7 4
## 4 0 44 70 233 23 35 724 328
## 5 0 11 32 132 57 17 453 184
## 6 5 7 12 131 42 29 335 166
## 7 0 25 79 246 25 51 1322 579
## 8 0 9 23 44 39 5 83 39
## 9 0 3 18 136 40 19 407 188
## 10 17 1 1 60 17 3 76 36
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 828 1.04 bojan krkic
## 2 0 0 0 0 0 57 9.58 pedro
## 3 0 0 0 0 0 1713 3.98 jeffren
## 4 0 0 0 0 0 9 14.70 david villa
## 5 0 0 0 0 1 756 9.61 benzema
## 6 0 0 0 0 0 3 4.49 higuain
## 7 0 0 1 0 0 2 61.60 cristiano
## 8 0 0 0 0 0 51 1.73 nilmar
## 9 0 0 0 0 0 22 2.51 rossi
## 10 0 0 0 0 0 1618 1.99 ruben
Na koniec tej sekcji spróbujmy wybrać unikalne wartości zmiennych:
unique(a$age) # <- co zwróciło?
## [1] 20 23 22 29 25 26 24 31 18 28 33 27 30 35 34 21 17 19 32 37 36
distinct(a, age) # <- co zwróciło?
## age
## 1 20
## 2 23
## 3 22
## 4 29
## 5 25
## 6 26
## 7 24
## 8 31
## 9 18
## 10 28
## 11 33
## 12 27
## 13 30
## 14 35
## 15 34
## 16 21
## 17 17
## 18 19
## 19 32
## 20 37
## 21 36
# Można robić distinct po wielu zmiennych:
distinct(a, age, top_spa)
## age top_spa
## 1 20 0
## 2 23 1
## 3 23 0
## 4 22 0
## 5 29 0
## 6 25 0
## 7 26 0
## 8 24 0
## 9 31 0
## 10 31 1
## 11 18 0
## 12 28 0
## 13 33 0
## 14 27 0
## 15 30 0
## 16 35 0
## 17 34 0
## 18 21 0
## 19 17 0
## 20 19 0
## 21 32 0
## 22 37 0
## 23 36 0
## 24 29 1
## 25 34 1
Funkcja arrange()
# Rosnąco po wieku:
head(
arrange(a, age)
, 10)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 1.0 17 170 63 0 0 0 0
## 2 6.0 18 169 63 0 0 0 4
## 3 1.5 19 184 77 0 0 0 3
## 4 12.0 20 173 65 5 0 7 20
## 5 26.0 20 189 88 2 0 0 20
## 6 2.5 20 185 73 0 0 4 1
## 7 6.5 20 186 70 0 0 0 7
## 8 8.0 20 183 74 0 0 0 5
## 9 6.0 21 163 63 0 0 0 12
## 10 8.0 21 183 73 4 0 11 39
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 0 0 0 5 1 2 1
## 2 0 0 0 4 22 3 16 10
## 3 0 0 0 8 7 2 20 7
## 4 0 0 1 47 67 11 139 62
## 5 0 0 2 42 34 13 153 56
## 6 2 0 0 23 9 3 38 16
## 7 0 1 1 8 19 2 32 13
## 8 0 0 1 25 9 2 38 18
## 9 12 0 0 89 34 9 129 58
## 10 0 4 19 104 64 13 364 165
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 1753 0.563 juanmi
## 2 0 0 0 0 0 914 0.431 munian
## 3 0 0 0 0 0 1815 0.458 macheda
## 4 0 0 0 0 0 828 1.040 bojan krkic
## 5 0 0 0 0 0 1174 9.170 balotelli
## 6 0 0 0 0 0 932 0.500 welbeck
## 7 0 0 0 0 0 1412 4.600 hernandez
## 8 0 0 0 0 0 384 0.024 schurle
## 9 0 0 0 0 0 384 0.841 piatti
## 10 0 0 0 0 0 917 0.858 saha
# Malejąco po wieku:
head(
arrange(a, desc(age))
, 10)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 1.0 37 170 70 0 0 6 8
## 2 4.0 37 181 74 16 3 2 40
## 3 7.0 36 173 73 8 0 4 55
## 4 1.5 35 167 70 0 0 1 13
## 5 1.5 35 188 85 4 5 0 54
## 6 2.0 35 184 78 4 2 1 36
## 7 2.0 34 184 74 0 11 3 35
## 8 10.0 34 180 70 7 3 1 82
## 9 3.0 34 178 76 0 0 1 47
## 10 0.6 34 171 72 0 1 1 29
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 55 0 8 119 51 19 346 203
## 2 0 25 57 86 76 8 249 105
## 3 0 27 91 129 44 20 366 139
## 4 0 2 21 161 11 42 213 51
## 5 0 3 6 123 15 5 210 66
## 6 0 35 64 106 60 13 197 85
## 7 0 0 4 101 69 10 250 97
## 8 0 9 58 167 7 32 461 113
## 9 0 2 14 97 28 7 263 96
## 10 0 0 6 105 34 10 208 70
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 1895 3.940 phillips
## 2 0 0 0 0 0 1607 2.730 inzaghi
## 3 0 1 0 0 0 440 2.890 del piero
## 4 0 0 0 0 0 839 0.069 munitis
## 5 0 0 0 0 0 1445 0.162 lucarelli
## 6 0 0 0 0 0 592 19.500 crespo
## 7 0 0 0 0 0 685 0.174 pandiani
## 8 0 1 0 0 0 796 2.640 totti
## 9 0 0 0 0 0 238 0.654 di vaio
## 10 0 0 0 0 0 1116 3.910 di michel
# Rosnąco po wieku, malejąco po wzroście:
head(
arrange(a, age, desc(height))
, 10)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 1.0 17 170 63 0 0 0 0
## 2 6.0 18 169 63 0 0 0 4
## 3 1.5 19 184 77 0 0 0 3
## 4 26.0 20 189 88 2 0 0 20
## 5 6.5 20 186 70 0 0 0 7
## 6 2.5 20 185 73 0 0 4 1
## 7 8.0 20 183 74 0 0 0 5
## 8 12.0 20 173 65 5 0 7 20
## 9 2.5 21 193 80 0 0 1 1
## 10 7.5 21 192 83 0 1 0 0
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 0 0 0 5 1 2 1
## 2 0 0 0 4 22 3 16 10
## 3 0 0 0 8 7 2 20 7
## 4 0 0 2 42 34 13 153 56
## 5 0 1 1 8 19 2 32 13
## 6 2 0 0 23 9 3 38 16
## 7 0 0 1 25 9 2 38 18
## 8 0 0 1 47 67 11 139 62
## 9 0 0 0 16 26 3 39 18
## 10 12 4 9 35 23 5 25 17
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 1753 0.563 juanmi
## 2 0 0 0 0 0 914 0.431 munian
## 3 0 0 0 0 0 1815 0.458 macheda
## 4 0 0 0 0 0 1174 9.170 balotelli
## 5 0 0 0 0 0 1412 4.600 hernandez
## 6 0 0 0 0 0 932 0.500 welbeck
## 7 0 0 0 0 0 384 0.024 schurle
## 8 0 0 0 0 0 828 1.040 bojan krkic
## 9 0 0 0 0 0 1731 4.530 di santo
## 10 0 0 0 0 0 1143 0.280 arnautovic
dplyr oferuje wiele dodatkowych funkcji do pracy z
wierszami, które są jednak wykorzystywane zdecydowanie rzadziej.
Poniżej kilka z nich:
# losowe wybranie frakcji zbioru, ze zwracaniem lub bez
sample_frac(a, 0.5, replace = TRUE)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 8.50 27 191 77 0 0 4 26
## 2 20.00 25 195 90 0 6 5 42
## 3 10.00 22 191 78 8 0 8 20
## 4 5.00 28 179 75 0 1 0 20
## 5 7.50 23 188 78 3 2 3 6
## 6 2.50 31 183 75 0 1 0 47
## 7 3.00 22 175 72 0 0 0 2
## 8 4.50 21 190 76 2 1 1 8
## 9 9.50 22 168 62 0 0 0 8
## 10 4.00 27 187 27 1 2 0 0
## 11 3.00 32 188 77 1 0 6 31
## 12 4.50 29 183 81 0 0 0 17
## 13 15.00 27 186 78 3 12 1 15
## 14 4.50 29 172 71 0 1 2 38
## 15 2.50 24 173 91 0 0 2 2
## 16 4.00 22 180 70 0 0 0 2
## 17 19.00 26 180 77 0 0 6 51
## 18 4.50 29 194 80 0 2 2 15
## 19 6.50 26 177 76 0 0 2 11
## 20 2.00 30 181 72 0 2 4 11
## 21 3.00 32 185 89 3 0 4 13
## 22 10.00 30 175 64 2 7 15 58
## 23 5.70 27 183 78 0 0 0 8
## 24 3.50 33 177 71 4 2 3 61
## 25 13.00 33 170 78 0 4 1 78
## 26 3.50 28 180 78 0 2 1 26
## 27 1.80 24 180 68 0 0 0 3
## 28 2.50 21 193 80 0 0 1 1
## 29 0.75 27 178 76 0 0 0 7
## 30 5.00 27 178 71 2 0 1 17
## 31 8.50 27 191 77 0 0 4 26
## 32 7.00 30 202 96 0 0 0 30
## 33 7.50 23 188 78 3 2 3 6
## 34 16.00 31 179 75 4 3 4 95
## 35 23.00 22 170 63 0 0 0 25
## 36 7.00 26 182 68 0 0 0 11
## 37 25.00 27 186 76 8 2 4 45
## 38 1.50 30 183 79 0 0 0 10
## 39 10.00 30 175 64 2 7 15 58
## 40 4.00 32 188 83 0 0 3 26
## 41 4.50 29 172 71 0 1 2 38
## 42 4.00 26 175 69 1 0 4 28
## 43 4.50 29 194 80 0 2 2 15
## 44 8.50 31 173 71 4 0 5 29
## 45 5.50 27 186 81 0 0 1 0
## 46 3.00 32 188 77 1 0 6 31
## 47 1.50 35 167 70 0 0 1 13
## 48 12.00 20 173 65 5 0 7 20
## 49 4.00 27 181 78 0 0 0 33
## 50 25.00 23 169 64 4 0 6 12
## 51 11.50 27 191 76 0 3 1 23
## 52 4.00 22 185 78 0 3 0 9
## 53 35.00 23 183 82 2 0 1 59
## 54 2.00 24 180 74 0 0 3 0
## 55 18.00 28 170 66 0 6 12 63
## 56 6.00 31 175 76 0 0 2 46
## 57 14.00 27 191 78 0 0 1 51
## 58 4.50 29 183 81 0 0 0 17
## 59 50.00 29 175 69 8 8 2 108
## 60 10.00 34 180 70 7 3 1 82
## 61 34.00 26 170 67 6 0 15 49
## 62 3.50 33 183 80 1 3 9 37
## 63 4.50 24 192 88 0 0 6 0
## 64 5.00 23 185 76 0 0 11 8
## 65 2.00 24 180 74 0 0 3 0
## 66 10.00 34 180 70 7 3 1 82
## 67 18.00 26 180 75 0 5 10 74
## 68 0.50 31 190 82 0 0 1 8
## 69 5.00 27 178 71 2 0 1 17
## 70 3.50 28 180 78 0 2 1 26
## 71 15.00 26 174 72 3 1 3 17
## 72 3.00 34 178 76 0 0 1 47
## 73 3.60 23 182 70 0 0 0 4
## 74 1.20 24 180 75 0 0 0 0
## 75 15.00 27 182 73 0 8 0 52
## 76 37.50 29 179 75 14 0 3 95
## 77 5.00 24 182 74 0 0 0 15
## 78 8.50 31 182 85 8 0 7 40
## 79 4.50 22 187 81 0 0 5 2
## 80 2.30 30 185 80 0 3 2 29
## 81 1.50 35 188 85 4 5 0 54
## 82 2.00 27 182 78 3 0 0 1
## 83 1.00 24 176 70 0 0 0 1
## 84 18.00 27 184 75 5 0 6 48
## 85 14.00 25 186 78 5 0 10 32
## 86 3.60 23 192 78 0 0 2 0
## 87 2.30 30 185 80 0 3 2 29
## 88 35.00 21 179 71 2 0 1 36
## 89 15.00 23 176 76 0 0 0 20
## 90 1.20 24 180 75 0 0 0 0
## 91 2.00 34 184 74 0 11 3 35
## 92 28.00 31 179 78 6 0 6 99
## 93 4.00 26 175 69 1 0 4 28
## 94 11.50 27 191 76 0 3 1 23
## 95 7.00 32 182 74 12 7 4 61
## 96 3.00 23 191 89 0 0 5 3
## 97 25.00 23 169 64 4 0 6 12
## 98 15.00 27 186 78 3 12 1 15
## 99 35.00 21 179 71 2 0 1 36
## 100 7.50 32 186 84 7 5 2 54
## 101 5.70 27 183 78 0 0 0 8
## 102 3.00 21 185 74 0 0 0 2
## 103 1.50 35 188 85 4 5 0 54
## 104 28.00 31 179 78 6 0 6 99
## 105 23.00 26 192 73 8 3 6 51
## 106 4.50 22 187 81 0 0 5 2
## 107 1.20 30 186 80 0 0 0 0
## 108 3.00 34 178 76 0 0 1 47
## 109 34.00 26 170 67 6 0 15 49
## 110 8.50 31 168 64 4 0 0 41
## 111 5.00 24 182 74 0 0 0 15
## 112 4.00 27 181 78 0 0 0 33
## 113 35.00 21 179 71 2 0 1 36
## 114 3.00 21 185 74 0 0 0 2
## 115 6.00 31 175 76 0 0 2 46
## 116 25.00 23 184 73 13 0 2 52
## 117 4.00 32 188 83 0 0 3 26
## 118 7.50 25 181 72 0 0 0 13
## 119 6.50 29 185 75 0 3 9 28
## 120 9.50 24 181 85 0 0 0 37
## 121 8.00 29 177 74 0 0 1 45
## 122 5.00 23 185 76 0 0 11 8
## 123 4.50 24 192 88 0 0 6 0
## 124 5.00 31 183 73 0 0 0 30
## 125 15.00 24 184 76 0 0 0 28
## 126 4.50 22 187 81 0 0 5 2
## 127 2.00 35 184 78 4 2 1 36
## 128 90.00 25 185 75 23 0 11 101
## 129 3.00 24 184 77 0 0 2 0
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 0 7 89 47 17 293 128
## 2 0 7 13 124 45 16 347 134
## 3 11 12 35 115 73 28 301 151
## 4 0 4 26 68 41 5 166 63
## 5 5 0 3 64 28 7 102 38
## 6 4 16 54 122 36 5 146 61
## 7 0 0 0 6 11 0 7 4
## 8 0 0 0 31 40 1 91 33
## 9 0 11 33 44 21 5 104 34
## 10 4 0 4 38 7 0 21 11
## 11 0 0 1 130 38 15 229 87
## 12 0 0 0 81 7 6 175 67
## 13 96 26 42 191 34 5 107 53
## 14 0 9 35 92 50 12 155 52
## 15 59 0 0 129 33 18 286 161
## 16 0 0 1 17 0 0 41 16
## 17 0 1 12 121 49 11 296 114
## 18 0 0 2 67 21 0 77 31
## 19 15 0 6 82 7 3 99 50
## 20 23 9 50 108 38 14 227 108
## 21 0 24 63 104 78 10 159 78
## 22 12 45 103 202 44 33 406 233
## 23 20 0 0 42 19 1 63 38
## 24 0 0 3 157 35 21 299 121
## 25 0 10 36 173 26 25 455 198
## 26 0 17 44 85 92 12 203 71
## 27 27 0 2 67 24 1 46 36
## 28 0 0 0 16 26 3 39 18
## 29 0 0 0 11 9 2 50 18
## 30 0 10 45 136 35 12 280 93
## 31 0 0 7 89 47 17 293 128
## 32 0 15 41 59 23 8 160 62
## 33 5 0 3 64 28 7 102 38
## 34 0 29 69 208 13 25 628 255
## 35 0 10 3 82 15 18 144 60
## 36 0 0 3 67 43 7 101 42
## 37 0 11 21 147 52 21 346 149
## 38 0 7 21 13 34 5 87 30
## 39 12 45 103 202 44 33 406 233
## 40 0 7 62 173 24 17 262 121
## 41 0 9 35 92 50 12 155 52
## 42 1 0 1 92 61 13 162 66
## 43 0 0 2 67 21 0 77 31
## 44 0 40 89 92 37 8 173 101
## 45 17 0 0 32 23 4 101 46
## 46 0 0 1 130 38 15 229 87
## 47 0 2 21 161 11 42 213 51
## 48 0 0 1 47 67 11 139 62
## 49 0 0 4 55 25 8 108 94
## 50 0 1 11 38 25 4 71 37
## 51 7 0 4 70 16 5 154 67
## 52 0 5 25 68 46 3 92 45
## 53 5 7 12 131 42 29 335 166
## 54 2 1 15 26 45 4 40 25
## 55 0 12 43 147 83 25 537 277
## 56 0 1 1 122 27 8 214 88
## 57 0 0 6 124 14 17 315 135
## 58 0 0 0 81 7 6 175 67
## 59 0 44 70 233 23 35 724 328
## 60 0 9 58 167 7 32 461 113
## 61 0 12 58 165 42 32 488 227
## 62 0 35 79 109 40 10 217 101
## 63 30 0 0 61 7 0 31 30
## 64 39 1 8 156 44 16 291 114
## 65 2 1 15 26 45 4 40 25
## 66 0 9 58 167 7 32 461 113
## 67 0 0 6 160 41 13 418 231
## 68 1 24 85 42 36 6 96 37
## 69 0 10 45 136 35 12 280 93
## 70 0 17 44 85 92 12 203 71
## 71 49 12 43 183 10 17 160 60
## 72 0 2 14 97 28 7 263 96
## 73 4 0 4 60 41 4 80 31
## 74 12 0 0 14 21 1 22 15
## 75 0 6 25 164 40 16 520 175
## 76 0 44 97 195 13 36 614 243
## 77 0 0 0 37 32 1 155 53
## 78 0 13 68 106 23 13 312 141
## 79 0 1 4 21 13 3 46 9
## 80 0 0 6 61 43 6 128 52
## 81 0 3 6 123 15 5 210 66
## 82 0 9 34 63 22 3 53 14
## 83 2 0 0 40 18 0 21 7
## 84 0 23 53 163 29 16 246 119
## 85 15 11 35 159 78 33 251 112
## 86 15 0 0 30 7 0 45 15
## 87 0 0 6 61 43 6 128 52
## 88 0 4 11 81 23 8 249 103
## 89 0 0 0 93 14 17 329 119
## 90 12 0 0 14 21 1 22 15
## 91 0 0 4 101 69 10 250 97
## 92 0 4 24 187 19 22 426 178
## 93 1 0 1 92 61 13 162 66
## 94 7 0 4 70 16 5 154 67
## 95 0 59 106 205 36 35 383 169
## 96 11 0 0 45 45 11 192 110
## 97 0 1 11 38 25 4 71 37
## 98 96 26 42 191 34 5 107 53
## 99 0 4 11 81 23 8 249 103
## 100 0 13 55 141 46 17 368 156
## 101 20 0 0 42 19 1 63 38
## 102 8 3 12 27 21 10 24 15
## 103 0 3 6 123 15 5 210 66
## 104 0 4 24 187 19 22 426 178
## 105 0 16 38 174 31 22 403 194
## 106 0 1 4 21 13 3 46 9
## 107 18 2 8 44 31 1 39 22
## 108 0 2 14 97 28 7 263 96
## 109 0 12 58 165 42 32 488 227
## 110 0 2 10 89 9 21 376 145
## 111 0 0 0 37 32 1 155 53
## 112 0 0 4 55 25 8 108 94
## 113 0 4 11 81 23 8 249 103
## 114 8 3 12 27 21 10 24 15
## 115 0 1 1 122 27 8 214 88
## 116 0 11 32 132 57 17 453 184
## 117 0 7 62 173 24 17 262 121
## 118 0 8 34 47 6 4 188 63
## 119 0 0 1 135 37 22 290 117
## 120 0 1 13 90 10 10 275 128
## 121 0 0 1 130 28 20 283 118
## 122 39 1 8 156 44 16 291 114
## 123 30 0 0 61 7 0 31 30
## 124 0 16 57 102 12 11 270 97
## 125 0 1 7 75 11 5 248 82
## 126 0 1 4 21 13 3 46 9
## 127 0 35 64 106 60 13 197 85
## 128 0 25 79 246 25 51 1322 579
## 129 27 2 8 75 11 9 202 93
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 698 1.240 cole
## 2 0 0 0 0 0 136 1.030 lorente
## 3 0 0 0 0 0 340 1.570 bendtner
## 4 0 0 0 0 0 270 0.275 uche
## 5 0 0 0 0 0 1898 0.642 jo
## 6 0 0 0 0 0 1882 0.387 suazo
## 7 0 0 0 0 0 1713 3.980 jeffren
## 8 0 0 0 0 0 1268 0.394 ngog
## 9 0 0 0 0 0 102 2.900 sanchez
## 10 0 0 0 0 0 1481 0.291 de camargo
## 11 0 0 0 0 0 811 0.398 Piquionne
## 12 0 0 0 0 0 1693 1.320 fortune
## 13 0 0 0 0 0 168 3.580 huntelaar
## 14 0 0 0 0 0 1587 6.210 zidan
## 15 0 0 0 0 0 1160 0.164 ebanks-blake
## 16 0 0 0 0 0 317 0.291 ideye
## 17 0 0 0 0 0 290 0.598 pazzini
## 18 0 0 0 0 0 1055 0.361 carraccioli
## 19 0 0 0 0 0 548 1.150 montano
## 20 0 0 0 0 0 1660 0.163 kamara
## 21 0 0 0 0 0 1845 0.715 gudjonsen
## 22 0 0 0 0 0 2054 2.030 keane
## 23 0 0 0 0 0 737 4.380 nene
## 24 0 0 0 0 0 1210 0.216 rocchi
## 25 0 1 0 0 0 18 1.590 di natale
## 26 0 0 0 0 0 475 0.093 webo
## 27 0 0 0 0 0 1561 1.810 gimenez
## 28 0 0 0 0 0 1731 4.530 di santo
## 29 0 0 0 0 0 2467 0.102 licata
## 30 0 0 0 0 0 455 0.556 valdez
## 31 0 0 0 0 0 698 1.240 cole
## 32 0 0 0 0 0 1324 0.397 zigic
## 33 0 0 0 0 0 1898 0.642 jo
## 34 1 0 0 0 0 113 2.970 forlan
## 35 0 0 0 0 0 157 36.400 mata
## 36 0 0 0 0 0 1431 0.133 palladino
## 37 0 0 0 0 0 166 0.524 vucinic
## 38 0 0 0 0 0 1809 0.335 chevanton
## 39 0 0 0 0 0 2054 2.030 keane
## 40 0 0 0 0 0 1475 0.523 heskey
## 41 0 0 0 0 0 1587 6.210 zidan
## 42 0 0 0 0 0 1528 0.083 sinama
## 43 0 0 0 0 0 1055 0.361 carraccioli
## 44 0 0 0 0 0 2054 74.600 owen
## 45 0 0 0 0 0 776 0.434 lakic
## 46 0 0 0 0 0 811 0.398 Piquionne
## 47 0 0 0 0 0 839 0.069 munitis
## 48 0 0 0 0 0 828 1.040 bojan krkic
## 49 0 0 0 0 0 1678 0.223 cavenaghi
## 50 0 0 0 0 0 57 9.580 pedro
## 51 0 0 0 0 0 317 0.513 hoarau
## 52 0 0 0 0 0 369 0.630 caicedo
## 53 0 0 0 0 0 3 4.490 higuain
## 54 0 0 0 0 0 1280 0.319 owusu
## 55 0 0 0 0 0 660 1.080 defoe
## 56 0 0 0 0 0 262 0.142 pellissier
## 57 0 0 0 0 0 636 0.561 kiessling
## 58 0 0 0 0 0 1693 1.320 fortune
## 59 0 0 0 0 0 9 14.700 david villa
## 60 0 1 0 0 0 796 2.640 totti
## 61 0 0 0 0 0 17 9.390 tevez
## 62 0 0 0 0 0 2119 0.424 mcCarthy
## 63 0 0 0 0 0 876 0.291 giroud
## 64 0 0 0 0 0 1200 1.780 fletcher
## 65 0 0 0 0 0 1280 0.319 owusu
## 66 0 1 0 0 0 796 2.640 totti
## 67 0 0 0 0 0 257 1.890 bent
## 68 0 0 0 0 0 1855 0.234 charisteas
## 69 0 0 0 0 0 455 0.556 valdez
## 70 0 0 0 0 0 475 0.093 webo
## 71 0 0 0 0 0 415 1.250 farfan
## 72 0 0 0 0 0 238 0.654 di vaio
## 73 0 0 0 0 0 1070 0.138 boukari
## 74 0 0 0 0 0 2249 2.180 pentecote
## 75 0 0 0 0 0 98 0.658 quagialera
## 76 1 0 0 0 0 97 22.500 etoo
## 77 0 0 0 0 0 51 0.482 osvaldo
## 78 0 0 0 0 0 475 0.771 olic
## 79 0 0 0 0 0 1150 0.472 kalinic
## 80 0 0 0 0 0 1828 0.117 budan
## 81 0 0 0 0 0 1445 0.162 lucarelli
## 82 0 0 0 0 0 1666 0.097 kone
## 83 0 0 0 0 0 1125 0.025 djadjede
## 84 0 0 0 0 0 756 0.735 pandev
## 85 0 0 0 0 0 91 1.220 kalu
## 86 0 0 0 0 0 913 1.260 roux
## 87 0 0 0 0 0 1828 0.117 budan
## 88 0 0 0 0 0 375 3.420 pato
## 89 0 0 0 0 0 221 0.548 zarate
## 90 0 0 0 0 0 2249 2.180 pentecote
## 91 0 0 0 0 0 685 0.174 pandiani
## 92 0 0 0 0 0 180 2.680 milito
## 93 0 0 0 0 0 1528 0.083 sinama
## 94 0 0 0 0 0 317 0.513 hoarau
## 95 0 0 0 1 0 1274 1.440 Klose
## 96 0 0 0 0 0 653 0.146 miller
## 97 0 0 0 0 0 57 9.580 pedro
## 98 0 0 0 0 0 168 3.580 huntelaar
## 99 0 0 0 0 0 375 3.420 pato
## 100 0 0 0 0 0 184 1.060 pizarro
## 101 0 0 0 0 0 737 4.380 nene
## 102 0 0 0 0 0 455 0.042 aubameyang
## 103 0 0 0 0 0 1445 0.162 lucarelli
## 104 0 0 0 0 0 180 2.680 milito
## 105 0 0 0 0 0 1026 5.620 adebayor
## 106 0 0 0 0 0 1150 0.472 kalinic
## 107 0 0 0 0 0 1320 0.223 traore
## 108 0 0 0 0 0 238 0.654 di vaio
## 109 0 0 0 0 0 17 9.390 tevez
## 110 0 0 0 0 0 290 0.233 miccoli
## 111 0 0 0 0 0 51 0.482 osvaldo
## 112 0 0 0 0 0 1678 0.223 cavenaghi
## 113 0 0 0 0 0 375 3.420 pato
## 114 0 0 0 0 0 455 0.042 aubameyang
## 115 0 0 0 0 0 262 0.142 pellissier
## 116 0 0 0 0 1 756 9.610 benzema
## 117 0 0 0 0 0 1475 0.523 heskey
## 118 0 0 0 0 0 346 0.212 rodallega
## 119 0 0 0 0 0 1641 0.414 zamora
## 120 0 0 0 0 0 104 0.406 erding
## 121 0 0 0 0 0 110 0.012 aduriz
## 122 0 0 0 0 0 1200 1.780 fletcher
## 123 0 0 0 0 0 876 0.291 giroud
## 124 0 0 0 0 0 302 0.255 hadijt
## 125 0 0 0 0 0 125 0.811 remy
## 126 0 0 0 0 0 1150 0.472 kalinic
## 127 0 0 0 0 0 592 19.500 crespo
## 128 0 0 1 0 0 2 61.600 cristiano
## 129 0 0 0 0 0 1431 0.106 allagui
# losowe wybranie n obserwacji, ze zwracaniem lub bez
sample_n(a, 10, replace = TRUE)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 1.0 33 192 88 0 0 0 2
## 2 12.0 28 183 83 0 6 5 49
## 3 5.0 28 179 75 0 1 0 20
## 4 2.7 28 174 72 0 0 0 10
## 5 1.6 24 168 65 0 0 0 6
## 6 1.0 33 191 82 0 0 1 23
## 7 8.0 29 177 74 0 0 1 45
## 8 19.0 28 184 79 11 1 0 70
## 9 18.0 26 180 75 0 5 10 74
## 10 8.0 26 191 93 6 6 4 32
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 30 0 0 77 10 11 151 73
## 2 0 21 53 156 41 21 339 179
## 3 0 4 26 68 41 5 166 63
## 4 9 4 17 63 48 3 71 53
## 5 0 0 0 40 40 2 98 22
## 6 0 12 57 113 44 4 121 46
## 7 0 0 1 130 28 20 283 118
## 8 0 17 45 198 45 18 356 154
## 9 0 0 6 160 41 13 418 231
## 10 0 12 34 99 73 15 363 141
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 1076 0.069 ebbers
## 2 0 0 0 0 0 312 1.290 yacubu
## 3 0 0 0 0 0 270 0.275 uche
## 4 0 0 0 0 0 768 0.170 camara
## 5 0 0 0 0 0 1384 0.116 quercia
## 6 0 0 0 0 0 1116 0.144 bogdani
## 7 0 0 0 0 0 110 0.012 aduriz
## 8 0 0 0 0 0 59 2.460 gilardino
## 9 0 0 0 0 0 257 1.890 bent
## 10 0 0 0 0 0 250 2.000 almeida
## Wybór wierszy w zależności od pozycji w bazie, tu wiersze od 10 do 15 włącznie
slice(a, 10:15)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 20 23 171 72 3 2 6 43
## 2 3 24 179 72 0 0 0 7
## 3 8 29 177 74 0 0 1 45
## 4 23 22 170 63 0 0 0 25
## 5 12 25 176 73 1 1 4 42
## 6 5 29 180 68 0 8 0 41
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 3 18 136 40 19 407 188
## 2 17 1 1 60 17 3 76 36
## 3 0 0 1 130 28 20 283 118
## 4 0 10 3 82 15 18 144 60
## 5 0 0 2 89 38 9 259 107
## 6 0 0 7 190 22 27 344 111
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 22 2.510 rossi
## 2 0 0 0 0 0 1618 1.990 ruben
## 3 0 0 0 0 0 110 0.012 aduriz
## 4 0 0 0 0 0 157 36.400 mata
## 5 0 0 0 0 0 33 1.000 soldado
## 6 0 0 0 0 0 718 14.200 garcia
# Wybranie n pierwszych (z najwyższą wartością) obserwacji według wieku.
top_n(a, 2, age)
## market_value age height weight goals_CL goals_UEFA goals_cups goals_top5l
## 1 1 37 170 70 0 0 6 8
## 2 4 37 181 74 16 3 2 40
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 55 0 8 119 51 19 346 203
## 2 0 25 57 86 76 8 249 105
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 1895 3.94 phillips
## 2 0 0 0 0 0 1607 2.73 inzaghi
Do wyboru kolumn służy funkcja select(). Pierwszym
argumentem jest zawsze zbiór danych (jak we wszystkich funkcjach dplyr).
W kolejnym wymieniamy nazwy kolumn (bez cudzysłowu) lub funkcje, które
zwracają nam grupy kolumn (o tym za chwilę).
Przyjrzyjmy się podstawowej implementacji select().
# wybranie kolumn name, weight, height
head(
select(a, name, weight, height)
, 5)
## name weight height
## 1 bojan krkic 65 173
## 2 lionel messi 67 169
## 3 pedro 64 169
## 4 jeffren 72 175
## 5 david villa 69 175
Za pomocą funkcji select() można również usuwać kolumny,
poprzez wybieranie “wszystkiego oprócz”. Nazwę takiej “niewybieranej”
kolumny poprzedzamy minusem.
# Wybranie wszystkich kolumn oprócz name, weight, height
head(
select(a, -name, -weight, -height)
, 5)
## market_value age goals_CL goals_UEFA goals_cups goals_top5l goals_rest
## 1 12 20 5 0 7 20 0
## 2 100 23 25 0 16 87 0
## 3 25 23 4 0 6 12 0
## 4 3 22 0 0 0 2 0
## 5 50 29 8 8 2 108 0
## goals_nat app_nat games_start subs assists shots_tot shots_on_gs top_spa
## 1 0 1 47 67 11 139 62 0
## 2 14 52 198 35 47 600 275 1
## 3 1 11 38 25 4 71 37 0
## 4 0 0 6 11 0 7 4 0
## 5 44 70 233 23 35 724 328 0
## top_ita top_eng top_ger top_fra rank popularity
## 1 0 0 0 0 828 1.04
## 2 0 0 0 0 1 57.20
## 3 0 0 0 0 57 9.58
## 4 0 0 0 0 1713 3.98
## 5 0 0 0 0 9 14.70
# Usunięcie kolumn z bazy i przypisanie do obiektu a2
a2 <- select(a, -name, -weight, -height)
# Można również usunąć zakres kolumn:
head(
select(a,-name:-height),
5)
## market_value age
## 1 12 20
## 2 100 23
## 3 25 23
## 4 3 22
## 5 50 29
Czasami opłaca nam się sformułować zapytanie w bardziej ogólny sposób. Na przykład: Wybierz kolumny zaczynające się od…, Wybierz kolumny których nazwy kończą się/ zawierają frazę…. Takie zapytania są niesłychanie przydatne - zobaczmy, jak można je pisać w dplyr:
# Wybierz zmienne, których nazwy zawierają zwrot "goals"
head(
select(a, contains("goals"))
, 5)
## goals_CL goals_UEFA goals_cups goals_top5l goals_rest goals_nat
## 1 5 0 7 20 0 0
## 2 25 0 16 87 0 14
## 3 4 0 6 12 0 1
## 4 0 0 0 2 0 0
## 5 8 8 2 108 0 44
# To samo co powyżej, ale pozwala na wyrażenia regularne:
head(
select(a, matches("als_"))
, 5)
## goals_CL goals_UEFA goals_cups goals_top5l goals_rest goals_nat
## 1 5 0 7 20 0 0
## 2 25 0 16 87 0 14
## 3 4 0 6 12 0 1
## 4 0 0 0 2 0 0
## 5 8 8 2 108 0 44
# Wybranie zmiennych kończących się na frazę "ght"
head(
select(a, ends_with("ght"))
, 5)
## height weight
## 1 173 65
## 2 169 67
## 3 169 64
## 4 175 72
## 5 175 69
# Wybranie kolumn, których nazwy powstają z połączenia goals_ i elementów wektora c()
head(
select(a, num_range("goals_", c('CL', 'UEFA')))
, 5)
## goals_CL goals_UEFA
## 1 5 0
## 2 25 0
## 3 4 0
## 4 0 0
## 5 8 8
# Wybranie kolumn, które są u nas na liście (jeśli którejś nie ma, zwracany jest warning).
# select(a, goals_CL, goals_UEFA, goals_PL)
head(
select(a, one_of(c("goals_CL", "goals_UEFA", "goals_PL")))
, 5)
## goals_CL goals_UEFA
## 1 5 0
## 2 25 0
## 3 4 0
## 4 0 0
## 5 8 8
# Wybranie kolumn zaczynających się od danej frazy i zmiennej name
head(
select(a, name, starts_with("goals_"))
, 5)
## name goals_CL goals_UEFA goals_cups goals_top5l goals_rest goals_nat
## 1 bojan krkic 5 0 7 20 0 0
## 2 lionel messi 25 0 16 87 0 14
## 3 pedro 4 0 6 12 0 1
## 4 jeffren 0 0 0 2 0 0
## 5 david villa 8 8 2 108 0 44
Zmianę nazwy zmiennej umożliwia funkcja rename(). Zasada
jest następująca - najpierw nowa nazwa, następnie nazwa zastępowana.
a <- rename(a, goals_cl = goals_CL, goals_uefa = goals_UEFA)
Dodawanie nowej zmiennej na podstawie już istniejących. Dodajmy zmienną BMI (Body Mass Index - Wskaźnik Masy Ciała) Przepis BMI = waga (kg) / wzrost (m)²
mutate(a, bmi = weight / ((height/100)*(height/100))) #
## market_value age height weight goals_cl goals_uefa goals_cups goals_top5l
## 1 12.00 20 173 65 5 0 7 20
## 2 100.00 23 169 67 25 0 16 87
## 3 25.00 23 169 64 4 0 6 12
## 4 3.00 22 175 72 0 0 0 2
## 5 50.00 29 175 69 8 8 2 108
## 6 25.00 23 184 73 13 0 2 52
## 7 35.00 23 183 82 2 0 1 59
## 8 90.00 25 185 75 23 0 11 101
## 9 20.00 26 180 70 4 1 0 11
## 10 20.00 23 171 72 3 2 6 43
## 11 3.00 24 179 72 0 0 0 7
## 12 8.00 29 177 74 0 0 1 45
## 13 23.00 22 170 63 0 0 0 25
## 14 12.00 25 176 73 1 1 4 42
## 15 5.00 29 180 68 0 8 0 41
## 16 5.00 24 182 74 0 0 0 15
## 17 2.50 31 180 78 0 0 0 20
## 18 36.00 22 170 69 5 3 2 54
## 19 16.00 31 179 75 4 3 4 95
## 20 5.00 22 188 85 0 0 0 8
## 21 6.00 26 185 80 0 0 2 28
## 22 5.00 26 171 69 0 0 0 16
## 23 20.00 25 195 90 0 6 5 42
## 24 6.00 18 169 63 0 0 0 4
## 25 5.00 31 184 72 4 0 0 39
## 26 3.50 28 180 78 0 2 1 26
## 27 3.00 33 180 74 0 4 0 41
## 28 4.00 27 181 78 0 0 0 33
## 29 20.00 30 183 81 9 7 12 62
## 30 9.00 33 192 82 8 12 7 73
## 31 2.00 27 182 78 3 0 0 1
## 32 16.00 25 185 82 1 0 2 43
## 33 15.00 22 179 70 1 0 0 5
## 34 6.00 33 190 80 7 1 0 51
## 35 5.00 27 178 71 2 0 1 17
## 36 3.00 30 187 84 0 0 1 30
## 37 2.50 22 180 71 0 0 0 8
## 38 3.50 28 185 76 3 0 5 30
## 39 1.50 35 167 70 0 0 1 13
## 40 2.50 30 183 82 0 0 0 11
## 41 2.00 34 184 74 0 11 3 35
## 42 4.00 22 185 78 0 3 0 9
## 43 6.00 21 163 63 0 0 0 12
## 44 2.50 24 185 75 0 0 0 0
## 45 5.00 28 179 75 0 1 0 20
## 46 1.00 17 170 63 0 0 0 0
## 47 2.00 24 180 74 0 0 3 0
## 48 1.50 30 185 82 0 0 1 18
## 49 4.00 26 175 69 1 0 4 28
## 50 5.00 26 178 71 0 0 0 19
## 51 25.00 29 188 81 4 12 7 69
## 52 8.50 31 173 71 4 0 5 29
## 53 55.00 25 178 79 18 0 13 80
## 54 1.50 19 184 77 0 0 0 3
## 55 26.00 20 189 88 2 0 0 20
## 56 23.00 26 192 73 8 3 6 51
## 57 7.00 29 188 83 1 0 3 32
## 58 7.50 23 188 78 3 2 3 6
## 59 34.00 26 170 67 6 0 15 49
## 60 10.00 22 191 78 8 0 8 20
## 61 15.00 26 185 70 5 4 1 39
## 62 25.00 27 183 72 12 0 8 43
## 63 18.00 28 170 66 0 6 12 63
## 64 12.00 29 201 71 11 4 13 39
## 65 22.00 31 183 78 5 0 7 52
## 66 10.00 30 175 64 2 7 15 58
## 67 30.00 32 188 84 21 0 21 74
## 68 14.00 25 186 78 5 0 10 32
## 69 3.00 33 183 77 0 1 2 38
## 70 5.00 29 188 84 2 2 2 30
## 71 2.50 30 186 76 2 1 2 37
## 72 18.00 26 180 75 0 5 10 74
## 73 2.50 20 185 73 0 0 4 1
## 74 11.00 25 180 77 0 0 0 25
## 75 1.50 28 180 70 0 0 8 5
## 76 1.50 31 185 64 0 1 3 22
## 77 3.00 23 175 72 0 0 0 1
## 78 4.50 22 187 81 0 0 5 2
## 79 2.50 32 185 79 0 0 7 27
## 80 3.00 31 191 79 0 0 6 14
## 81 10.00 26 187 85 0 0 5 26
## 82 3.00 32 185 89 3 0 4 13
## 83 16.00 31 178 64 0 4 5 34
## 84 8.00 21 183 73 4 0 11 39
## 85 12.00 28 183 83 0 6 5 49
## 86 50.00 26 185 79 8 0 2 83
## 87 4.50 21 190 76 2 1 1 8
## 88 2.50 21 191 65 0 0 2 3
## 89 2.50 29 191 76 0 0 1 16
## 90 3.00 23 191 89 0 0 5 3
## 91 4.50 29 183 81 0 0 0 17
## 92 4.00 32 188 83 0 0 3 26
## 93 10.00 31 193 89 5 2 8 46
## 94 16.00 24 180 79 0 0 4 46
## 95 5.00 24 185 85 0 0 5 52
## 96 7.00 30 202 96 0 0 0 30
## 97 1.00 37 170 70 0 0 6 8
## 98 2.00 30 181 72 0 2 4 11
## 99 7.50 23 175 70 0 4 2 24
## 100 6.50 29 185 75 0 3 9 28
## 101 7.50 25 181 72 0 0 0 13
## 102 2.50 21 193 80 0 0 1 1
## 103 3.00 32 188 77 1 0 6 31
## 104 8.50 27 191 77 0 0 4 26
## 105 3.50 33 183 80 1 3 9 37
## 106 4.00 23 178 81 0 0 0 16
## 107 5.00 23 185 76 0 0 11 8
## 108 2.50 24 173 91 0 0 2 2
## 109 27.50 30 180 80 13 2 0 66
## 110 35.00 21 179 71 2 0 1 36
## 111 30.00 29 191 84 13 0 4 80
## 112 18.00 26 175 60 5 1 2 39
## 113 4.00 37 181 74 16 3 2 40
## 114 15.50 23 188 71 0 0 0 34
## 115 19.00 25 173 75 0 0 0 23
## 116 1.50 35 188 85 4 5 0 54
## 117 10.00 29 178 74 1 0 1 37
## 118 3.50 33 177 71 4 2 3 61
## 119 15.00 23 176 76 0 0 0 20
## 120 12.50 30 186 83 5 0 0 51
## 121 7.00 36 173 73 8 0 4 55
## 122 13.50 31 187 77 6 0 0 49
## 123 15.00 27 182 73 0 8 0 52
## 124 5.00 29 183 72 4 0 7 26
## 125 8.50 28 189 86 8 0 2 22
## 126 17.00 28 180 73 1 1 0 42
## 127 25.00 27 186 76 8 2 4 45
## 128 10.00 34 180 70 7 3 1 82
## 129 6.50 20 186 70 0 0 0 7
## 130 8.50 31 168 64 4 0 0 41
## 131 4.50 31 180 73 0 0 0 40
## 132 37.50 29 179 75 14 0 3 95
## 133 28.00 31 179 78 6 0 6 99
## 134 18.00 27 184 75 5 0 6 48
## 135 2.50 31 183 75 0 1 0 47
## 136 18.50 28 175 73 0 3 3 35
## 137 4.00 24 184 75 0 0 0 18
## 138 19.00 26 180 77 0 0 6 51
## 139 6.00 27 183 73 0 0 0 19
## 140 13.00 33 170 78 0 4 1 78
## 141 9.50 22 168 62 0 0 0 8
## 142 7.00 26 182 68 0 0 0 11
## 143 6.00 33 196 88 3 0 4 90
## 144 5.00 29 177 71 0 0 0 18
## 145 1.80 27 182 74 0 0 0 3
## 146 6.00 31 175 76 0 0 2 46
## 147 5.00 31 175 66 0 0 1 30
## 148 6.50 26 192 88 0 0 1 14
## 149 4.00 22 180 70 0 0 1 14
## 150 6.50 23 184 67 0 0 0 27
## 151 8.00 26 183 80 0 0 0 25
## 152 5.70 27 183 78 0 0 0 8
## 153 1.80 24 180 68 0 0 0 3
## 154 3.00 34 178 76 0 0 1 47
## 155 7.50 31 180 74 5 5 4 57
## 156 19.00 28 184 79 11 1 0 70
## 157 17.50 21 183 79 4 0 0 8
## 158 6.20 24 183 76 0 0 0 15
## 159 2.00 35 184 78 4 2 1 36
## 160 1.00 33 191 82 0 0 1 23
## 161 2.30 30 185 80 0 3 2 29
## 162 4.00 27 180 73 0 0 0 11
## 163 4.50 29 194 80 0 2 2 15
## 164 0.60 34 171 72 0 1 1 29
## 165 1.50 27 180 78 0 0 2 4
## 166 1.50 30 183 79 0 0 0 10
## 167 1.40 30 183 83 0 0 0 4
## 168 8.00 25 171 59 1 2 2 24
## 169 14.00 26 187 83 0 0 4 19
## 170 6.50 22 186 72 0 0 0 5
## 171 6.00 22 184 78 0 1 0 0
## 172 4.50 29 172 71 0 1 2 38
## 173 10.00 22 191 83 0 0 2 12
## 174 14.00 27 191 78 0 0 1 51
## 175 1.50 27 180 68 0 0 1 15
## 176 6.00 27 174 74 0 0 0 9
## 177 7.00 32 182 74 12 7 4 61
## 178 26.00 25 189 88 4 8 7 74
## 179 8.50 31 182 85 8 0 7 40
## 180 8.00 20 183 74 0 0 0 5
## 181 3.00 23 193 82 0 0 0 1
## 182 3.00 24 184 77 0 0 2 0
## 183 1.25 27 185 83 0 0 0 18
## 184 5.50 22 186 83 0 0 1 3
## 185 6.00 34 188 80 15 0 1 72
## 186 15.00 24 176 70 0 2 3 5
## 187 6.50 27 183 77 1 5 1 27
## 188 8.50 30 184 81 0 0 4 33
## 189 1.00 29 185 82 0 0 3 3
## 190 10.00 25 183 73 0 0 0 6
## 191 7.50 24 185 78 9 3 1 11
## 192 8.00 26 188 82 0 0 2 36
## 193 7.50 33 182 74 17 0 3 53
## 194 15.00 26 174 72 3 1 3 17
## 195 0.50 31 190 82 0 0 1 8
## 196 15.00 27 186 78 3 12 1 15
## 197 2.50 31 192 85 0 3 3 22
## 198 12.50 25 182 83 3 5 4 29
## 199 8.00 26 191 93 6 6 4 32
## 200 7.50 32 186 84 7 5 2 54
## 201 7.50 21 192 83 0 1 0 0
## 202 5.50 27 186 81 0 0 1 0
## 203 2.50 28 185 82 0 2 3 39
## 204 3.50 30 179 76 0 0 2 39
## 205 4.00 23 185 73 0 0 0 1
## 206 5.50 27 188 91 3 0 0 6
## 207 6.00 29 179 74 2 0 3 42
## 208 1.50 33 180 85 1 0 0 12
## 209 1.00 33 192 88 0 0 0 2
## 210 30.00 25 191 84 4 0 6 56
## 211 7.50 31 189 88 3 0 5 64
## 212 4.00 27 187 27 1 2 0 0
## 213 2.25 31 190 83 0 0 1 9
## 214 14.00 23 179 66 0 0 0 21
## 215 8.50 25 180 69 0 0 0 12
## 216 4.00 30 175 71 0 7 1 25
## 217 6.50 26 177 76 0 0 2 11
## 218 3.60 23 182 70 0 0 0 4
## 219 2.60 23 179 75 0 0 0 3
## 220 22.00 28 174 74 16 0 0 15
## 221 10.00 25 184 77 2 0 0 44
## 222 9.00 24 181 84 0 0 0 29
## 223 13.00 25 186 84 0 0 0 43
## 224 5.00 30 189 78 3 0 0 15
## 225 15.00 24 184 76 0 0 0 28
## 226 5.50 21 176 72 0 0 0 3
## 227 12.50 29 181 70 0 1 1 40
## 228 11.50 27 191 76 0 3 1 23
## 229 3.00 21 185 74 0 0 0 2
## 230 9.50 24 181 85 0 0 0 37
## 231 4.60 21 182 76 0 0 1 9
## 232 4.50 24 192 88 0 0 6 0
## 233 2.70 28 174 72 0 0 0 10
## 234 3.20 22 175 65 0 0 0 5
## 235 5.50 22 186 73 0 0 0 3
## 236 5.50 24 175 70 0 0 0 17
## 237 10.00 23 170 64 0 0 0 34
## 238 3.00 22 177 72 0 0 0 13
## 239 3.50 24 185 76 0 0 0 15
## 240 1.20 24 180 75 0 0 0 0
## 241 4.00 22 180 70 0 0 0 2
## 242 3.60 23 192 78 0 0 2 0
## 243 1.20 30 184 76 0 1 0 0
## 244 5.00 24 183 70 0 0 0 0
## 245 1.20 30 186 80 0 0 0 0
## 246 5.00 31 183 73 0 0 0 30
## 247 5.00 30 170 68 0 0 0 23
## 248 2.50 32 189 78 0 0 0 16
## 249 3.30 31 183 70 0 0 0 28
## 250 2.60 24 188 84 0 0 0 13
## 251 7.50 29 184 74 0 0 0 43
## 252 0.75 27 178 76 0 0 0 7
## 253 1.60 24 168 65 0 0 0 6
## 254 3.40 28 185 76 0 7 0 15
## 255 6.00 25 183 70 0 0 0 13
## 256 1.80 27 185 80 0 0 0 10
## 257 2.20 30 178 67 0 0 10 5
## 258 1.00 24 176 70 0 0 0 1
## goals_rest goals_nat app_nat games_start subs assists shots_tot shots_on_gs
## 1 0 0 1 47 67 11 139 62
## 2 0 14 52 198 35 47 600 275
## 3 0 1 11 38 25 4 71 37
## 4 0 0 0 6 11 0 7 4
## 5 0 44 70 233 23 35 724 328
## 6 0 11 32 132 57 17 453 184
## 7 5 7 12 131 42 29 335 166
## 8 0 25 79 246 25 51 1322 579
## 9 0 9 23 44 39 5 83 39
## 10 0 3 18 136 40 19 407 188
## 11 17 1 1 60 17 3 76 36
## 12 0 0 1 130 28 20 283 118
## 13 0 10 3 82 15 18 144 60
## 14 0 0 2 89 38 9 259 107
## 15 0 0 7 190 22 27 344 111
## 16 0 0 0 37 32 1 155 53
## 17 5 0 1 62 30 4 154 56
## 18 18 9 25 194 38 31 431 187
## 19 0 29 69 208 13 25 628 255
## 20 10 0 0 66 3 5 83 37
## 21 0 0 0 108 45 11 298 117
## 22 2 0 0 41 21 3 108 51
## 23 0 7 13 124 45 16 347 134
## 24 0 0 0 4 22 3 16 10
## 25 0 0 0 87 17 11 230 116
## 26 0 17 44 85 92 12 203 71
## 27 0 5 13 113 20 8 216 91
## 28 0 0 4 55 25 8 108 94
## 29 0 28 43 154 32 17 426 157
## 30 0 23 38 177 38 18 397 148
## 31 0 9 34 63 22 3 53 14
## 32 8 2 4 116 25 16 269 114
## 33 2 0 1 55 21 5 46 25
## 34 0 34 71 106 30 8 182 86
## 35 0 10 45 136 35 12 280 93
## 36 0 0 0 95 64 12 307 82
## 37 0 0 0 53 31 4 80 30
## 38 0 6 30 65 48 17 199 86
## 39 0 2 21 161 11 42 213 51
## 40 0 0 0 45 12 7 87 38
## 41 0 0 4 101 69 10 250 97
## 42 0 5 25 68 46 3 92 45
## 43 12 0 0 89 34 9 129 58
## 44 35 0 0 105 23 6 55 37
## 45 0 4 26 68 41 5 166 63
## 46 0 0 0 0 5 1 2 1
## 47 2 1 15 26 45 4 40 25
## 48 0 3 4 67 50 4 134 48
## 49 1 0 1 92 61 13 162 66
## 50 0 6 23 78 31 12 148 62
## 51 0 48 77 208 32 44 503 262
## 52 0 40 89 92 37 8 173 101
## 53 0 25 66 243 24 66 983 436
## 54 0 0 0 8 7 2 20 7
## 55 0 0 2 42 34 13 153 56
## 56 0 16 38 174 31 22 403 194
## 57 0 21 76 90 50 10 181 82
## 58 5 0 3 64 28 7 102 38
## 59 0 12 58 165 42 32 488 227
## 60 11 12 35 115 73 28 301 151
## 61 0 15 56 155 49 17 225 107
## 62 0 19 52 147 39 38 543 230
## 63 0 12 43 147 83 25 537 277
## 64 0 21 41 184 79 33 566 250
## 65 0 14 69 187 36 32 516 268
## 66 12 45 103 202 44 33 406 233
## 67 0 45 71 201 39 44 694 294
## 68 15 11 35 159 78 33 251 112
## 69 0 0 1 196 4 35 290 143
## 70 0 13 50 145 21 15 272 111
## 71 4 12 39 100 58 8 227 95
## 72 0 0 6 160 41 13 418 231
## 73 2 0 0 23 9 3 38 16
## 74 0 22 44 68 28 7 197 69
## 75 44 0 0 142 46 17 286 167
## 76 5 0 0 76 61 6 195 94
## 77 0 1 6 0 5 0 8 1
## 78 0 1 4 21 13 3 46 9
## 79 0 12 22 103 55 16 196 115
## 80 34 11 60 150 46 19 378 177
## 81 18 4 45 150 46 24 340 181
## 82 0 24 63 104 78 10 159 78
## 83 0 21 42 175 8 21 304 148
## 84 0 4 19 104 64 13 364 165
## 85 0 21 53 156 41 21 339 179
## 86 0 26 82 210 21 22 575 238
## 87 0 0 0 31 40 1 91 33
## 88 18 0 1 49 30 10 145 51
## 89 10 0 0 70 36 8 146 71
## 90 11 0 0 45 45 11 192 110
## 91 0 0 0 81 7 6 175 67
## 92 0 7 62 173 24 17 262 121
## 93 0 23 85 151 36 12 361 171
## 94 0 0 3 179 16 30 287 156
## 95 0 0 0 155 50 10 372 179
## 96 0 15 41 59 23 8 160 62
## 97 55 0 8 119 51 19 346 203
## 98 23 9 50 108 38 14 227 108
## 99 10 5 28 176 30 4 64 33
## 100 0 0 1 135 37 22 290 117
## 101 0 8 34 47 6 4 188 63
## 102 0 0 0 16 26 3 39 18
## 103 0 0 1 130 38 15 229 87
## 104 0 0 7 89 47 17 293 128
## 105 0 35 79 109 40 10 217 101
## 106 0 9 35 60 49 4 119 41
## 107 39 1 8 156 44 16 291 114
## 108 59 0 0 129 33 18 286 161
## 109 0 32 88 198 25 54 517 168
## 110 0 4 11 81 23 8 249 103
## 111 0 25 65 205 24 32 578 234
## 112 0 25 83 174 39 35 460 193
## 113 0 25 57 86 76 8 249 105
## 114 0 4 21 93 24 5 262 92
## 115 0 0 8 92 5 22 252 83
## 116 0 3 6 123 15 5 210 66
## 117 0 0 0 122 24 19 247 101
## 118 0 0 3 157 35 21 299 121
## 119 0 0 0 93 14 17 329 119
## 120 0 0 1 146 28 10 291 118
## 121 0 27 91 129 44 20 366 139
## 122 0 6 40 114 52 17 241 94
## 123 0 6 25 164 40 16 520 175
## 124 0 5 47 101 75 7 329 116
## 125 0 29 51 87 21 11 164 44
## 126 0 0 6 96 31 7 281 106
## 127 0 11 21 147 52 21 346 149
## 128 0 9 58 167 7 32 461 113
## 129 0 1 1 8 19 2 32 13
## 130 0 2 10 89 9 21 376 145
## 131 0 0 2 108 5 9 329 126
## 132 0 44 97 195 13 36 614 243
## 133 0 4 24 187 19 22 426 178
## 134 0 23 53 163 29 16 246 119
## 135 4 16 54 122 36 5 146 61
## 136 0 5 19 112 25 29 277 125
## 137 0 0 0 48 41 2 88 31
## 138 0 1 12 121 49 11 296 114
## 139 0 0 0 59 42 9 233 92
## 140 0 10 36 173 26 25 455 198
## 141 0 11 33 44 21 5 104 34
## 142 0 0 3 67 43 7 101 42
## 143 0 16 47 184 18 25 476 219
## 144 0 0 0 82 24 8 168 70
## 145 0 0 1 10 20 1 31 15
## 146 0 1 1 122 27 8 214 88
## 147 0 0 1 131 5 18 286 86
## 148 0 0 1 36 20 3 76 32
## 149 0 3 9 40 36 6 105 41
## 150 0 0 0 67 23 2 163 75
## 151 0 0 0 61 42 11 164 67
## 152 20 0 0 42 19 1 63 38
## 153 27 0 2 67 24 1 46 36
## 154 0 2 14 97 28 7 263 96
## 155 0 29 67 151 21 20 466 185
## 156 0 17 45 198 45 18 356 154
## 157 0 6 11 58 20 9 192 63
## 158 0 7 35 37 44 2 79 24
## 159 0 35 64 106 60 13 197 85
## 160 0 12 57 113 44 4 121 46
## 161 0 0 6 61 43 6 128 52
## 162 0 0 1 33 21 5 180 64
## 163 0 0 2 67 21 0 77 31
## 164 0 0 6 105 34 10 208 70
## 165 4 0 18 41 35 3 47 15
## 166 0 7 21 13 34 5 87 30
## 167 0 13 52 55 53 1 20 8
## 168 0 0 0 62 28 9 69 32
## 169 0 4 10 33 3 5 108 56
## 170 6 0 3 53 13 9 88 36
## 171 1 10 30 7 6 1 9 3
## 172 0 9 35 92 50 12 155 52
## 173 13 2 30 66 33 6 121 48
## 174 0 0 6 124 14 17 315 135
## 175 0 0 3 63 20 9 71 29
## 176 0 1 4 24 6 2 78 39
## 177 0 59 106 205 36 35 383 169
## 178 0 14 41 145 62 24 439 169
## 179 0 13 68 106 23 13 312 141
## 180 0 0 1 25 9 2 38 18
## 181 0 4 6 8 7 1 69 8
## 182 27 2 8 75 11 9 202 93
## 183 8 0 0 84 35 12 215 77
## 184 0 0 0 7 33 1 56 23
## 185 0 34 68 146 19 18 351 192
## 186 16 2 18 130 39 14 50 24
## 187 0 9 28 87 43 12 235 86
## 188 0 11 35 76 10 5 267 99
## 189 12 0 0 43 20 6 82 40
## 190 22 7 8 64 14 1 62 38
## 191 7 5 40 119 113 18 177 77
## 192 0 7 29 66 15 12 205 78
## 193 0 44 102 173 43 22 321 143
## 194 49 12 43 183 10 17 160 60
## 195 1 24 85 42 36 6 96 37
## 196 96 26 42 191 34 5 107 53
## 197 0 19 48 93 10 5 144 58
## 198 0 42 84 156 60 24 324 125
## 199 0 12 34 99 73 15 363 141
## 200 0 13 55 141 46 17 368 156
## 201 12 4 9 35 23 5 25 17
## 202 17 0 0 32 23 4 101 46
## 203 0 8 37 132 44 10 174 59
## 204 0 20 52 68 40 8 207 103
## 205 13 3 20 42 13 1 95 45
## 206 0 7 25 36 8 7 59 26
## 207 0 4 17 108 15 21 381 143
## 208 0 6 43 48 45 5 92 32
## 209 30 0 0 77 10 11 151 73
## 210 0 17 31 88 15 21 385 165
## 211 0 1 4 118 9 18 310 152
## 212 4 0 4 38 7 0 21 11
## 213 13 6 34 75 3 8 174 64
## 214 0 5 24 74 17 12 147 64
## 215 0 3 5 27 45 5 99 43
## 216 0 0 0 98 46 9 185 74
## 217 15 0 6 82 7 3 99 50
## 218 4 0 4 60 41 4 80 31
## 219 0 0 0 11 43 0 67 16
## 220 10 1 7 86 13 11 185 86
## 221 0 2 5 103 44 17 394 130
## 222 0 0 4 106 18 24 246 85
## 223 0 4 16 109 25 14 451 180
## 224 0 0 0 62 8 6 167 59
## 225 0 1 7 75 11 5 248 82
## 226 4 2 28 36 21 4 38 16
## 227 0 0 0 181 7 28 426 151
## 228 7 0 4 70 16 5 154 67
## 229 8 3 12 27 21 10 24 15
## 230 0 1 13 90 10 10 275 128
## 231 0 0 0 21 21 4 55 26
## 232 30 0 0 61 7 0 31 30
## 233 9 4 17 63 48 3 71 53
## 234 6 0 0 44 17 4 47 24
## 235 21 0 0 54 26 0 86 41
## 236 0 0 0 81 31 14 178 67
## 237 0 0 2 93 13 14 251 107
## 238 0 0 0 28 14 1 20 5
## 239 0 3 16 53 35 15 111 36
## 240 12 0 0 14 21 1 22 15
## 241 0 0 1 17 0 0 41 16
## 242 15 0 0 30 7 0 45 15
## 243 10 0 0 71 36 0 20 10
## 244 11 0 3 23 14 0 25 11
## 245 18 2 8 44 31 1 39 22
## 246 0 16 57 102 12 11 270 97
## 247 0 0 0 93 26 21 213 87
## 248 0 1 18 39 17 3 135 49
## 249 0 0 0 95 35 12 230 81
## 250 0 1 3 40 42 5 76 27
## 251 0 5 29 98 21 6 252 117
## 252 0 0 0 11 9 2 50 18
## 253 0 0 0 40 40 2 98 22
## 254 0 8 35 98 40 13 233 90
## 255 0 15 49 57 1 9 103 41
## 256 5 22 51 44 33 1 93 41
## 257 15 0 0 74 30 2 55 26
## 258 2 0 0 40 18 0 21 7
## top_spa top_ita top_eng top_ger top_fra rank popularity name
## 1 0 0 0 0 0 828 1.040 bojan krkic
## 2 1 0 0 0 0 1 57.200 lionel messi
## 3 0 0 0 0 0 57 9.580 pedro
## 4 0 0 0 0 0 1713 3.980 jeffren
## 5 0 0 0 0 0 9 14.700 david villa
## 6 0 0 0 0 1 756 9.610 benzema
## 7 0 0 0 0 0 3 4.490 higuain
## 8 0 0 1 0 0 2 61.600 cristiano
## 9 0 0 0 0 0 51 1.730 nilmar
## 10 0 0 0 0 0 22 2.510 rossi
## 11 0 0 0 0 0 1618 1.990 ruben
## 12 0 0 0 0 0 110 0.012 aduriz
## 13 0 0 0 0 0 157 36.400 mata
## 14 0 0 0 0 0 33 1.000 soldado
## 15 0 0 0 0 0 718 14.200 garcia
## 16 0 0 0 0 0 51 0.482 osvaldo
## 17 0 0 0 0 0 1693 0.877 alonso
## 18 0 0 0 0 0 38 1.140 aguero
## 19 1 0 0 0 0 113 2.970 forlan
## 20 0 0 0 0 0 515 2.840 costa
## 21 0 0 0 0 0 270 0.735 manu
## 22 0 0 0 0 0 819 0.571 colunga
## 23 0 0 0 0 0 136 1.030 lorente
## 24 0 0 0 0 0 914 0.431 munian
## 25 0 0 0 0 0 205 0.310 lorente2
## 26 0 0 0 0 0 475 0.093 webo
## 27 0 0 0 0 0 1575 0.306 tamudo
## 28 0 0 0 0 0 1678 0.223 cavenaghi
## 29 0 0 0 0 0 27 7.250 fabiano
## 30 0 0 0 0 0 276 1.090 kanoute
## 31 0 0 0 0 0 1666 0.097 kone
## 32 0 0 0 0 0 393 0.812 negrado
## 33 0 0 0 0 0 772 0.315 perotti
## 34 0 0 0 0 0 221 1.190 trezeguett
## 35 0 0 0 0 0 455 0.556 valdez
## 36 0 0 0 0 0 1312 0.574 riki
## 37 0 0 0 0 0 742 0.568 adrian
## 38 0 0 0 0 0 713 0.776 rosenberg
## 39 0 0 0 0 0 839 0.069 munitis
## 40 0 0 0 0 0 460 0.869 aranda
## 41 0 0 0 0 0 685 0.174 pandiani
## 42 0 0 0 0 0 369 0.630 caicedo
## 43 0 0 0 0 0 384 0.841 piatti
## 44 0 0 0 0 0 1425 0.110 ulloa
## 45 0 0 0 0 0 270 0.275 uche
## 46 0 0 0 0 0 1753 0.563 juanmi
## 47 0 0 0 0 0 1280 0.319 owusu
## 48 0 0 0 0 0 1479 1.420 bilic
## 49 0 0 0 0 0 1528 0.083 sinama
## 50 0 0 0 0 0 2266 0.127 i. uche
## 51 0 0 0 0 0 5 0.267 berbatov
## 52 0 0 0 0 0 2054 74.600 owen
## 53 0 0 0 0 0 12 51.400 rooney
## 54 0 0 0 0 0 1815 0.458 macheda
## 55 0 0 0 0 0 1174 9.170 balotelli
## 56 0 0 0 0 0 1026 5.620 adebayor
## 57 0 0 0 0 0 1795 0.406 santa cruz
## 58 0 0 0 0 0 1898 0.642 jo
## 59 0 0 0 0 0 17 9.390 tevez
## 60 0 0 0 0 0 340 1.570 bendtner
## 61 0 0 0 0 0 102 2.360 hamakh
## 62 0 0 0 0 0 990 9.260 van persie
## 63 0 0 0 0 0 660 1.080 defoe
## 64 0 0 0 0 0 704 11.800 crouch
## 65 0 0 1 0 0 87 4.970 anelka
## 66 0 0 0 0 0 2054 2.030 keane
## 67 0 0 1 0 0 20 17.100 drogba
## 68 0 0 0 0 0 91 1.220 kalu
## 69 0 0 0 0 0 964 4.630 davies
## 70 0 0 0 0 0 257 0.439 elmander
## 71 0 0 0 0 0 1703 0.514 klasnic
## 72 0 0 0 0 0 257 1.890 bent
## 73 0 0 0 0 0 932 0.500 welbeck
## 74 0 0 0 0 0 341 1.040 gyan
## 75 0 0 0 0 0 1087 0.166 varney
## 76 0 0 0 0 0 1790 0.214 harenwood
## 77 0 0 0 0 0 1368 0.122 biram diouf
## 78 0 0 0 0 0 1150 0.472 kalinic
## 79 0 0 0 0 0 1390 3.113 roberts
## 80 0 0 0 0 0 515 0.514 fuller
## 81 0 0 0 0 0 290 0.390 kenwyne
## 82 0 0 0 0 0 1845 0.715 gudjonsen
## 83 0 0 0 0 0 49 2.000 cahill
## 84 0 0 0 0 0 917 0.858 saha
## 85 0 0 0 0 0 312 1.290 yacubu
## 86 0 0 0 0 0 63 15.900 torres
## 87 0 0 0 0 0 1268 0.394 ngog
## 88 0 0 0 0 0 422 3.840 karroll
## 89 0 0 0 0 0 1477 0.279 ameobi
## 90 0 0 0 0 0 653 0.146 miller
## 91 0 0 0 0 0 1693 1.320 fortune
## 92 0 0 0 0 0 1475 0.523 heskey
## 93 0 0 0 0 0 1014 0.758 carew
## 94 0 0 0 0 0 449 0.448 agbonlahor
## 95 0 0 0 0 0 558 1.110 jerome
## 96 0 0 0 0 0 1324 0.397 zigic
## 97 0 0 0 0 0 1895 3.940 phillips
## 98 0 0 0 0 0 1660 0.163 kamara
## 99 0 0 0 0 0 1924 0.044 dembele
## 100 0 0 0 0 0 1641 0.414 zamora
## 101 0 0 0 0 0 346 0.212 rodallega
## 102 0 0 0 0 0 1731 4.530 di santo
## 103 0 0 0 0 0 811 0.398 Piquionne
## 104 0 0 0 0 0 698 1.240 cole
## 105 0 0 0 0 0 2119 0.424 mcCarthy
## 106 0 0 0 0 0 723 0.328 obina
## 107 0 0 0 0 0 1200 1.780 fletcher
## 108 0 0 0 0 0 1160 0.164 ebanks-blake
## 109 0 0 0 0 0 104 19.600 ronaldinho
## 110 0 0 0 0 0 375 3.420 pato
## 111 0 1 0 0 0 14 9.620 ibrahimovic
## 112 0 0 0 0 0 485 7.910 robinho
## 113 0 0 0 0 0 1607 2.730 inzaghi
## 114 0 0 0 0 0 63 1.380 cavagi
## 115 0 0 0 0 0 93 0.481 lavezzi
## 116 0 0 0 0 0 1445 0.162 lucarelli
## 117 0 0 0 0 0 133 0.243 floccari
## 118 0 0 0 0 0 1210 0.216 rocchi
## 119 0 0 0 0 0 221 0.548 zarate
## 120 0 0 0 0 0 1412 4.200 amauri
## 121 0 1 0 0 0 440 2.890 del piero
## 122 0 0 0 0 0 1147 0.836 iaquinta
## 123 0 0 0 0 0 98 0.658 quagialera
## 124 0 0 0 0 0 1728 1.270 baptista
## 125 0 0 0 0 0 1983 14.000 adriano
## 126 0 0 0 0 0 69 1.360 boriello
## 127 0 0 0 0 0 166 0.524 vucinic
## 128 0 1 0 0 0 796 2.640 totti
## 129 0 0 0 0 0 1412 4.600 hernandez
## 130 0 0 0 0 0 290 0.233 miccoli
## 131 0 0 0 0 0 627 0.157 maccarone
## 132 1 0 0 0 0 97 22.500 etoo
## 133 0 0 0 0 0 180 2.680 milito
## 134 0 0 0 0 0 756 0.735 pandev
## 135 0 0 0 0 0 1882 0.387 suazo
## 136 0 0 0 0 0 947 9.430 cassano
## 137 0 0 0 0 0 1511 0.214 pozzi
## 138 0 0 0 0 0 290 0.598 pazzini
## 139 0 0 0 0 0 296 0.383 floro flores
## 140 0 1 0 0 0 18 1.590 di natale
## 141 0 0 0 0 0 102 2.900 sanchez
## 142 0 0 0 0 0 1431 0.133 palladino
## 143 0 1 0 1 0 601 3.120 toni
## 144 0 0 0 0 0 791 0.409 sculli
## 145 0 0 0 0 0 1451 0.056 granoche
## 146 0 0 0 0 0 262 0.142 pellissier
## 147 0 0 0 0 0 649 0.195 mascara
## 148 0 0 0 0 0 333 1.120 lopez
## 149 0 0 0 0 0 1801 0.193 morimoto
## 150 0 0 0 0 0 1125 0.227 acquafresca
## 151 0 0 0 0 0 336 2.460 matri
## 152 0 0 0 0 0 737 4.380 nene
## 153 0 0 0 0 0 1561 1.810 gimenez
## 154 0 0 0 0 0 238 0.654 di vaio
## 155 0 0 0 0 0 1745 2.360 mutu
## 156 0 0 0 0 0 59 2.460 gilardino
## 157 0 0 0 0 0 698 0.165 jovetic
## 158 0 0 0 0 0 1151 0.118 bojinov
## 159 0 0 0 0 0 592 19.500 crespo
## 160 0 0 0 0 0 1116 0.144 bogdani
## 161 0 0 0 0 0 1828 0.117 budan
## 162 0 0 0 0 0 763 0.693 diamanti
## 163 0 0 0 0 0 1055 0.361 carraccioli
## 164 0 0 0 0 0 1116 3.910 di michel
## 165 0 0 0 0 0 1170 7.020 oliveira
## 166 0 0 0 0 0 1809 0.335 chevanton
## 167 0 0 0 0 0 1603 0.039 kutuzov
## 168 0 0 0 0 0 596 0.435 baretto
## 169 0 0 0 0 0 6 5.140 barrios
## 170 0 0 0 0 0 148 0.144 Gro\xa7kreutz
## 171 0 0 0 0 0 1581 0.843 lewandowski
## 172 0 0 0 0 0 1587 6.210 zidan
## 173 0 0 0 0 0 515 0.315 dedriyok
## 174 0 0 0 0 0 636 0.561 kiessling
## 175 0 0 0 0 0 1657 0.131 Schlaufdry
## 176 0 0 0 0 0 369 0.748 Ya Konan
## 177 0 0 0 1 0 1274 1.440 Klose
## 178 0 0 0 0 0 13 10.800 Gomez
## 179 0 0 0 0 0 475 0.771 olic
## 180 0 0 0 0 0 384 0.024 schurle
## 181 0 0 0 0 0 791 0.371 szalai
## 182 0 0 0 0 0 1431 0.106 allagui
## 183 0 0 0 0 0 1511 0.246 eigler
## 184 0 0 0 0 0 592 1.160 schieben
## 185 1 0 0 0 0 120 2.170 nisterlooy
## 186 0 0 0 0 0 1421 0.266 elia
## 187 0 0 0 0 0 1412 0.759 guerrero
## 188 0 0 0 0 0 627 0.273 petric
## 189 0 0 0 0 0 1753 0.102 reisinger
## 190 0 0 0 0 0 34 0.129 cisse
## 191 0 0 0 0 0 1490 1.010 babbel
## 192 0 0 0 0 0 199 0.256 ibicevic
## 193 0 0 0 0 0 60 75.000 Raul
## 194 0 0 0 0 0 415 1.250 farfan
## 195 0 0 0 0 0 1855 0.234 charisteas
## 196 0 0 0 0 0 168 3.580 huntelaar
## 197 0 0 0 0 0 696 0.180 nowakovic
## 198 0 0 0 0 0 551 2.850 podolski
## 199 0 0 0 0 0 250 2.000 almeida
## 200 0 0 0 0 0 184 1.060 pizarro
## 201 0 0 0 0 0 1143 0.280 arnautovic
## 202 0 0 0 0 0 776 0.434 lakic
## 203 0 0 0 0 0 749 0.481 altintop
## 204 0 0 0 1 0 93 0.245 gekas
## 205 0 0 0 0 0 1587 0.258 harnik
## 206 0 0 0 0 0 272 0.184 pogrebniak
## 207 0 0 0 0 0 78 3.550 cacau
## 208 0 0 0 0 0 1467 0.909 asamoah
## 209 0 0 0 0 0 1076 0.069 ebbers
## 210 0 0 0 1 0 70 4.580 dzeko
## 211 0 0 0 1 0 170 0.691 grafite
## 212 0 0 0 0 0 1481 0.291 de camargo
## 213 0 0 0 0 0 548 0.132 idrisu
## 214 0 0 0 0 0 67 0.872 gervinho
## 215 0 0 0 0 0 248 0.475 sow
## 216 0 0 0 0 0 772 0.216 frau
## 217 0 0 0 0 0 548 1.150 montano
## 218 0 0 0 0 0 1070 0.138 boukari
## 219 0 0 0 0 0 1359 0.195 ekoko
## 220 0 0 0 0 0 148 1.120 lopez2
## 221 0 0 0 0 0 379 0.228 gomis
## 222 0 0 0 0 0 311 0.581 briand
## 223 0 0 0 0 1 221 0.307 gignac
## 224 0 0 0 0 0 464 2.320 brandao
## 225 0 0 0 0 0 125 0.811 remy
## 226 0 0 0 0 0 166 0.587 ayew
## 227 0 0 0 0 0 76 0.413 nene2
## 228 0 0 0 0 0 317 0.513 hoarau
## 229 0 0 0 0 0 455 0.042 aubameyang
## 230 0 0 0 0 0 104 0.406 erding
## 231 0 0 0 0 0 354 3.100 riviera
## 232 0 0 0 0 0 876 0.291 giroud
## 233 0 0 0 0 0 768 0.170 camara
## 234 0 0 0 0 0 1156 1.120 ait-fana
## 235 0 0 0 0 0 1300 1.080 modeste
## 236 0 0 0 0 0 636 0.299 goufran
## 237 0 0 0 0 0 209 0.331 gameiro
## 238 0 0 0 0 0 814 0.066 kitambala
## 239 0 0 0 0 0 333 0.094 maiga
## 240 0 0 0 0 0 2249 2.180 pentecote
## 241 0 0 0 0 0 317 0.291 ideye
## 242 0 0 0 0 0 913 1.260 roux
## 243 0 0 0 0 0 1134 0.085 poyet
## 244 0 0 0 0 0 857 0.652 el-arabi
## 245 0 0 0 0 0 1320 0.223 traore
## 246 0 0 0 0 0 302 0.255 hadijt
## 247 0 0 0 0 0 1163 0.205 vahirua
## 248 0 0 0 0 0 713 0.318 ljuboja
## 249 0 0 0 0 0 365 0.640 pujol
## 250 0 0 0 0 0 1478 0.185 samassa
## 251 0 0 0 0 0 308 0.167 jelen
## 252 0 0 0 0 0 2467 0.102 licata
## 253 0 0 0 0 0 1384 0.116 quercia
## 254 0 0 0 0 0 566 0.418 niculae
## 255 0 0 0 0 0 592 0.733 chu-yang
## 256 0 0 0 0 0 1430 0.079 jemaa
## 257 0 0 0 0 0 2354 0.019 dos santos
## 258 0 0 0 0 0 1125 0.025 djadjede
## bmi
## 1 21.718066
## 2 23.458562
## 3 22.408179
## 4 23.510204
## 5 22.530612
## 6 21.561909
## 7 24.485652
## 8 21.913806
## 9 21.604938
## 10 24.622961
## 11 22.471209
## 12 23.620288
## 13 21.799308
## 14 23.566632
## 15 20.987654
## 16 22.340297
## 17 24.074074
## 18 23.875433
## 19 23.407509
## 20 24.049344
## 21 23.374726
## 22 23.597004
## 23 23.668639
## 24 22.058051
## 25 21.266541
## 26 24.074074
## 27 22.839506
## 28 23.808797
## 29 24.187046
## 30 22.243924
## 31 23.547881
## 32 23.959094
## 33 21.847009
## 34 22.160665
## 35 22.408787
## 36 24.021276
## 37 21.913580
## 38 22.205990
## 39 25.099502
## 40 24.485652
## 41 21.857278
## 42 22.790358
## 43 23.711845
## 44 21.913806
## 45 23.407509
## 46 21.799308
## 47 22.839506
## 48 23.959094
## 49 22.530612
## 50 22.408787
## 51 22.917610
## 52 23.722811
## 53 24.933720
## 54 22.743384
## 55 24.635369
## 56 19.802517
## 57 23.483477
## 58 22.068809
## 59 23.183391
## 60 21.380993
## 61 20.452885
## 62 21.499597
## 63 22.837370
## 64 17.573822
## 65 23.291230
## 66 20.897959
## 67 23.766410
## 68 22.545959
## 69 22.992624
## 70 23.766410
## 71 21.967858
## 72 23.148148
## 73 21.329438
## 74 23.765432
## 75 21.604938
## 76 18.699781
## 77 23.510204
## 78 23.163373
## 79 23.082542
## 80 21.655108
## 81 24.307244
## 82 26.004383
## 83 20.199470
## 84 21.798202
## 85 24.784258
## 86 23.082542
## 87 21.052632
## 88 17.817494
## 89 20.832762
## 90 24.396261
## 91 24.187046
## 92 23.483477
## 93 23.893259
## 94 24.382716
## 95 24.835646
## 96 23.527105
## 97 24.221453
## 98 21.977351
## 99 22.857143
## 100 21.913806
## 101 21.977351
## 102 21.477087
## 103 21.785876
## 104 21.106878
## 105 23.888441
## 106 25.564954
## 107 22.205990
## 108 30.405293
## 109 24.691358
## 110 22.159109
## 111 23.025685
## 112 19.591837
## 113 22.587833
## 114 20.088275
## 115 25.059307
## 116 24.049344
## 117 23.355637
## 118 22.662709
## 119 24.535124
## 120 23.991213
## 121 24.391059
## 122 22.019503
## 123 22.038401
## 124 21.499597
## 125 24.075474
## 126 22.530864
## 127 21.967858
## 128 21.604938
## 129 20.233553
## 130 22.675737
## 131 22.530864
## 132 23.407509
## 133 24.343809
## 134 22.152647
## 135 22.395413
## 136 23.836735
## 137 22.152647
## 138 23.765432
## 139 21.798202
## 140 26.989619
## 141 21.967120
## 142 20.528922
## 143 22.907122
## 144 22.662709
## 145 22.340297
## 146 24.816327
## 147 21.551020
## 148 23.871528
## 149 21.604938
## 150 19.789698
## 151 23.888441
## 152 23.291230
## 153 20.987654
## 154 23.986870
## 155 22.839506
## 156 23.334121
## 157 23.589835
## 158 22.694019
## 159 23.038752
## 160 22.477454
## 161 23.374726
## 162 22.530864
## 163 21.256244
## 164 24.622961
## 165 24.074074
## 166 23.589835
## 167 24.784258
## 168 20.177149
## 169 23.735308
## 170 20.811655
## 171 23.038752
## 172 23.999459
## 173 22.751569
## 174 21.380993
## 175 20.987654
## 176 24.441802
## 177 22.340297
## 178 24.635369
## 179 25.661152
## 180 22.096808
## 181 22.014014
## 182 22.743384
## 183 24.251278
## 184 23.991213
## 185 22.634676
## 186 22.598140
## 187 22.992624
## 188 23.924858
## 189 23.959094
## 190 21.798202
## 191 22.790358
## 192 23.200543
## 193 22.340297
## 194 23.781213
## 195 22.714681
## 196 22.545959
## 197 23.057726
## 198 25.057360
## 199 25.492722
## 200 24.280264
## 201 22.515191
## 202 23.413111
## 203 23.959094
## 204 23.719609
## 205 21.329438
## 206 25.746944
## 207 23.095409
## 208 26.234568
## 209 23.871528
## 210 23.025685
## 211 24.635369
## 212 7.721124
## 213 22.991690
## 214 20.598608
## 215 21.296296
## 216 23.183673
## 217 24.258674
## 218 21.132713
## 219 23.407509
## 220 24.441802
## 221 22.743384
## 222 25.640243
## 223 24.280264
## 224 21.835895
## 225 22.448015
## 226 23.243802
## 227 21.366869
## 228 20.832762
## 229 21.621622
## 230 25.945484
## 231 22.944089
## 232 23.871528
## 233 23.781213
## 234 21.224490
## 235 21.100705
## 236 22.857143
## 237 22.145329
## 238 22.981902
## 239 22.205990
## 240 23.148148
## 241 21.604938
## 242 21.158854
## 243 22.448015
## 244 20.902386
## 245 23.124061
## 246 21.798202
## 247 23.529412
## 248 21.835895
## 249 20.902386
## 250 23.766410
## 251 21.857278
## 252 23.986870
## 253 23.030045
## 254 22.205990
## 255 20.902386
## 256 23.374726
## 257 21.146320
## 258 22.598140
a <- mutate(a, bmi = weight / ((height/100)*(height/100))) # dodanie do zbioru
a <- mutate(a, bmi = NULL) # wyrzucenie ze zbioru
a <- mutate(a, height2 = height**2, # dodanie zmiennej
age = age**2) # zmiana wartości zmiennej
Źródła i inspiracje pomocne w przygotowaniu niniejszej prezentacji:
Materiały z warsztatów Data Science w zastosowaniach biznesowych - Warsztaty z wykorzystaniem programu R Uniwersytet Warszawski, Wydział Nauk Ekonomicznych
Frank McCown, Ph.D. home page materials
Dokumentacja: help(package = "graphics")
?par - wszystkie parametry graficzne
colors() - lista 657 dostępnych kolorów w R