# instalacja pakietu z przykładowymi zbiorami danych
# o ile nie jest zainstalowany
if (! "mlbench" %in% row.names(installed.packages()))
install.packages("mlbench")
# załadowanie tego pakietu
library(mlbench)
# UWAGA: w zależności od środowiska instalacji i uprawnień użytkownika
# może okazać się wskazanie katalogu do przechowywania instalowanych pakietów
# za pomocą argumentu lib.loc do funkcji install.packages i library
# sprawdzenie jakie zbiory danych są dostępne
data()
# załadowanie wybranego zbioru danych
data(HouseVotes84)
# sprawdźmy, czy na pewno jest
ls()
# nazwy kolumn
names(HouseVotes84)
# liczba kolumn
ncol(HouseVotes84)
# liczba wierszy
nrow(HouseVotes84)
# charakterystyka danych
summary(HouseVotes84)
# pierwszy wiersz
HouseVotes84[1,]
# pierwsza kolumna
HouseVotes84[,1]
# wartość w pierwszej kolumnie i pierwszym wierszu
HouseVotes84[1,1]
# odwołanie do kolumny przez jej nazwę
HouseVotes84$Class
# można również inaczej, gdy nazwa kolumny jest wartością zmiennej
cn <- "Class"
HouseVotes84[[cn]]
# pierwszy element wybranej kolumny
HouseVotes84$Class[1]
# użycie wyrażeń logicznych (warunków) jako indeksów
HouseVotes84[HouseVotes84$Class=="democrat",]
# zliczanie przez sumowanie wartości logicznych
sum(HouseVotes84$Class=="democrat")
# średnia absencja w głosowaniach przedstawicieli każdej partii
sum(is.na(HouseVotes84[HouseVotes84$Class=="republican",]))/sum(HouseVotes84$Class=="republican")
sum(is.na(HouseVotes84[HouseVotes84$Class=="democrat",]))/sum(HouseVotes84$Class=="democrat")
# rozkład głosowań obu partii
democrats <- HouseVotes84[HouseVotes84$Class=="democrat",]
republicans <- HouseVotes84[HouseVotes84$Class=="republican",]
summary(democrats)
summary(republicans)
# łatwo zauważyć, że np. kolumna V4 dobrze różnicuje kategorie
# zdefiniujmy funkcję implementującą oparty na tym spostrzeżeniu model
ruleV4 <- function(data) { factor(ifelse(data$V4 == "y", "republican", "democrat"), levels=c("democrat", "republican")) }
# sprawdzenie rozkładu zgodności kategorii prawdziwej i przewidywanej przez model
summary(ruleV4(HouseVotes84) == HouseVotes84$Class)
# inny przykładowy zbiór danych
data(Glass)
# charakterystyka tego zbioru
summary(Glass)