Laboratorium nr.11/12 Bioinformatyka 27.01.16 setwd("D
Transkrypt
Laboratorium nr.11/12 Bioinformatyka 27.01.16 setwd("D
Laboratorium nr.11/12 Bioinformatyka 27.01.16 setwd("D:/DYDAKTYK/bioinformatyka") Wykorzystano materiały i bazę danych dostępne na: http://pogromcydanych.icm.edu.pl # Zainstaluj bazę danych dostępne w bibliotece: install.packages("PogromcyDanych") library(PogromcyDanych) Potokowe przetwarzanie danych # wczytaj ze strony http://biecek.pl/MOOC/dane/auta2012mini.csv zbiór przedstawiający ofertę cenową aut w roku 2012 # (sep=";", dec=",") auta2012 <- read.table(file = "http://biecek.pl/MOOC/dane/auta2012mini.csv", sep=";", dec=",", header=TRUE) View(auta2012) W R mamy możliwość potokowego przetwarzania danych korzystając z specjalnego operatora do przetwarzania potokowego %>, który jest dostępny w pakiecie dplyr. Operator działa w następujący sposób przekazuje lewą stronę operatora jako pierwszy argument prawej strony tego operatora, np. instrukcja a %>% f(b) jest równoważna instrukcji f(a, b). Zadanie Zapoznaj się z przykładem, a następnie korzystając z funkcji filter(), (możesz też skorzystać z subset()), arrange() wybierz samochody Opel Astra II o małym przebiegu (mniej niż 50tys km) z manualną skrzynią biegów i posortuj ich cenę malejąco Przykład library(dplyr) samochodyFord<-auta2012 %>% filter(Marka == "Ford") %>% arrange(Cena.w.PLN) View(samochodyFord) sprawdź czy w kolumnie Przebieg.w.km brakuje danych wykorzystaj funkcję is.na() oblicz ile jest takich brakujących danych w/w kolumnie wszystkie brakujące dane zastąp liczbą 0, wykorzystaj w tym celu funcje gsub() następnie podstaw nowe wartości w miejsce poprzednich korzystając z funkcji mutate() w kolumnie Przebieg.w.km Przykład nowy_wynik<-dane1%>%gsub("-","NA",dane1$nazwa_kolumny) dane2<-dane1%>%mutate(nazwa_kolumny=nowy_wynik) uzyskany zbiór zapisz do pliku Grupowanie danych Zapoznaj się z przykładem, w którym korzystając z funkcji group_by() wykonano grupowanie względem rodzaju paliwa samochodów. dla samochodów Renault wyprodukowanych w 2007, sprawdzono ile średnio kosztują poszczególne typy samochodów oraz jaki mają przebieg i ile takich samochodów w bazie jest autaGrupowane<-auta2012 %>% filter(Marka == "Renault", Rok.produkcji == 2007) %>% group_by(Rodzaj.paliwa) %>% summarise(medianaCeny = median(Cena.w.PLN, na.rm=TRUE), medianaPrzebieg = median(Przebieg.w.km, na.rm=TRUE),liczba = n()) %>% filter(liczba > 10) print(autaGrupowane) View(autaGrupowane) następnie wybierz wybierz conajmniej czteroletnie Golfy i sprawdź czy ich średnia cena zależy od kraju aktualnej rejestracji (musisz pogrupować po zmiennej Kraj.aktualnej.rejestracji) Funkcje Po załadowaniu biblioteki "Pogromcy danych" masz dostęp do danych klinicznych i genetycznych pacjentów (głównie pacjentek) z nowotworem piersi- zbiór danych TCGA_BRCA. W zbiorze danych TCGA_BRCA zebrano wyniki dla 999 pacjentów. Każdy wiersz to jeden pacjent. Dla każdego pacjenta podane jest 5 cech: informacja o mutacji genu TP53, płeć pacjenta, informacja czy pacjent żyje pięć lat po zabiegu, liczba dni od operacji do zgonu (jeżeli wystąpił), informacja o tym czy doszło do wznowy i czy pojawił się nowy guz. Zapoznaj się z danymi: Vie w(table(TCGA_BRCA)) i strukturą funkcji: nazwa_funkcji <- function(argumenty_rozdzielone_przecinkiem, argument0=wartość domyślna argumentu) { wyrażenie } Przykład moje_imie<- function(imie, krotnosc=3) { for (i in 1:krotnosc){ print(imie) } } Wywołanie: >> moje_imie('Aneta',5) >>moje_imie('Aneta') Utwórz funkcję która dla podanej płci pacjenta oraz typu mutacji genu TP53 obliczy liczbę pacjentów nieżyjących i wyznaczy średnią liczbę dni do śmierci w w/w grupie. Aby połączyć dane różnych typów możesz wykorzystać np. funkcje paste(), cat() Wypisz wszystkie nazwy mutacji genu TP53 Przestaw kolumę 1 z kolumną ostatnią Przestaw wiersz 1 i 2