Laboratorium nr.10/11 Bioinformatyka 20.01.16 Wczytywanie i

Transkrypt

Laboratorium nr.10/11 Bioinformatyka 20.01.16 Wczytywanie i
Laboratorium nr.10/11
Bioinformatyka
20.01.16
Wczytywanie i zapisywanie danych z/do pliku
# Zapoznaj się z składnią funkcji read.table oraz read.csv umożliwiającą wczytanie danych z pliku
wpisując w konsoli:
>> ?read.table
# Pobierz i zapisz plik ze strony http://biecek.pl/MOOC/dane/koty_ptaki.csv
dane<-read.table(file = "http://biecek.pl/MOOC/dane/koty_ptaki.csv",sep=";", dec=",",
header=TRUE)
View(dane)
#pobierz i Wyświetl kolumnę waga
dane$waga->a
print(a)
# wyświetl drugi wiersz
dane[2,]->b
print(b)
#wybierz kolumny zywotnosc, druzyna korzystając z funkcji select (zainstaluj pakiet dplyr)
#sprawdź działanie komend:
k<-c(dane$waga, dane$dlugosc, dane$habitat)
c<-dane[,1:3]
a<-as.numeric(dane$habitat)
b<-grepl("Azja", dane$habitat)
# Zapoznaj się ze składnią funkcji write.table i zapisz dane zawarte w zmiennej k do pliku
write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ", eol = "\n", na = "NA",
dec = ".", row.names = TRUE, col.names = TRUE, qmethod = c("escape", "double"),
fileEncoding = "")

x - określa jaka tabela/które dane mają być zapisane do pliku tekstowego,

file - określa nazwę pliku tekstowego, do którego dane będą zapisane,

append - domyślna wartość FALSE oznacza, że jeśli plik o nazwie file istniał wcześniej, to zostanie on
skasowany. Jeżeli ustawimy append=TRUE to nowe dane będą dopisane do końca poprzedniego pliku.

sep - określa znak, który jest separatorem kolejnych wartości,

dec - określa znak, który jest separatorem dziesiętnym (zazwyczaj . lub ,),

row.names - określa czy do pliku tekstowego mają być zapisywane nazwy wierszy, domyślnie TRUE,

col.names - określa czy do pliku tekstowego mają być zapisywane nazwy kolumn, domyślnie TRUE.
#wczytaj plik http://biecek.pl/R/dane/mieszkaniaWarszawa.csv
dane <- read.table("http://biecek.pl/R/dane/mieszkaniaWarszawa.csv", sep=";",
header=TRUE, dec=".")
View(dane)
#posortuj wiersze w pliku wzgledem powierzchni mieszkań oraz daty budowy
#od najmniejszej do największej korzystając z funkcji
#install.packages("dplyr")
library(dplyr)
arrange(dane,surface)->dane3
View(dane3)
#posortuj wiersze w pliku względem powierzchni mieszkań ale niezależnie dla mieszkań
#hipotecznych i spółdzielczych wykorzystaj arrange(zbior,zmienna1,zmienna2)
# filtrowanie danych przykład
tylkoMieszkaniaWysokopowierzchniowe <- filter(dane,type = = "spoldzielcze",surface > 100)
View(tylkoMieszkaniaWysokopowierzchniowe)
#wyświetl podstawowe dane statystyczne dotyczące mieszkań
summary(dane)
#uporządkuj rosnąco obserwacje (wiersze) w zależności od nr piętra w budynku
Wektory, konwersja danych
#utwórz wektor m o elementach:
m<-c(1,2,3,4,5,6,7,8,9,10)
#utwórz wektor o elementach od 1 do 20 z krokiem 2
n<-seq(from = 1, to = 20, by = 2)
#Zapisz wektory m in jako kolumny tabeli do pliku dane1.txt wykorzystaj:
dane11<-cbind(m,n)
View(dane11)
#utwórz etykiety o nazwach "Nr" i "ilość" i nadaj nagłówki danym zawartym w pliku dane1.txt
dane12<-as.data.frame(dane11)
names(dane12)<-c("Nr","ilosc")
View(dane12)
Zadanie 1
Wczytaj dane opisujące objawy psychopatologiczne zapisane w zmiennej eden oraz dane opisujące
pracę (funkcję) nerki po przeszczepie kidney (w danych kidney w kolumnach MDRD7 - MDRD60
znajdują się pomiary sprawności nerki,mierzone współczynnikiem MDRD) w dniach 7, 30, oraz
miesiącach 3, 6, 12, 24, 36 i 60 po przeszczepie) z pakietu PBImisc
install.packages("PBImisc")
library(PBImisc)
View(kidney)
View(eden)
a następnie określ:
a) minimalny wiek pacjenta dawcy
b) średni i maksymalny wiek biorcy
c) liczbę wszystkich biorców którzy zapadli po przeszczepie na cukrzycę
d) w zależności od zastosowanej terapii wykonaj sortowanie (od min do max) po wieku pacjentów
biorców
e) określ liczbę mężczyzn mieszkających w Londynie, którzy w obszarze mania posiadają wskaźnik
(1.0 - 2.0)
f) kobiety o wskaźniku depresji powyżej 2.0 posegreguj w zależności od lat ich edukacji
g) określ średni poziom wskaźników depresji u kobiet i mężczyzn
h) Sprawdź ile pacjentów przeszło terapię: tc, ca, cm
Grafika
Zapoznaj się z podstawowymi funkcjami graficznymi pakietu ggplot2
(http://ggplot2.org/resources/2007-vanderbilt.pdf)
Zadanie 2
a) Sprawdź (przedstaw graficznie) jak zmieniała się w czasie funkcja nerki po przeszczepie mierzona w
MDRD, jakie czynniki wpływały na sprawność nerki?
b) Dla zbioru eden, należy pokazać zróżnicowanie poziomu objawów psychopatologicznych (obszary:
mania, depresja, symptomy pozytywne i negatywne), na wykresie przedstaw jakie czynniki wpływają na
poziom objawów psychopatologicznych.
Pętle
for (a in 1:5) {
cat("wartość zmienne a= ", a , "n")
}
# pętla losująca wartości akcji dla losowej liczby firm
liczbaFirm <- round(runif(n = 1, min = 1, max = 20))
# dla każdej firmy losujemy wartość akcji
for (i in 1:liczbaFirm) {
cat("Akcja ", i," jej cena to", runif(n = 1, min=0, max=5000), "PLN\n")
}
# pętla wypisująca liczbę różnych wartości i listująca te wartości dla każdej kolumny
kolumny <- colnames(kidney)
for (i in kolumny) {
wartosciWKolumnie <- unique(as.character(kidney[,i]))
cat("Kolumna", i, "\n")
cat(" ", length(wartosciWKolumnie), "różnych wartości:", wartosciWKolumnie, "\n")
}
Zadanie 3
Napisz pętlę, która dla każdego wiersza z tabeli eden wypisze obliczy liczbę dzieci dla każdego z
miast w którym mieszkają pacjenci
Warunki
Zapoznaj się z składnią instrukcji warunkowej if oraz switch na podstawie literatury „Przewodnik
po pakiecie R” P. Biecek (http://cran.r-project.org/doc/contrib/Biecek-R-basics.pdf)
Zadanie 4

Napisz instrukcję warunkową, która dla pacjentów (tabela eden) o poziomie objawów depresji <1
wypisze przypadek lekki, a dla >2 przypadek ciężki, a w przedziale 1-2 wypisze średni. Taki efekt
można uzyskać stosując dwie instrukcje if() lub korzystając z funkcji switch()

Napisz pętlę i instrukcję warunkową które obliczą poszczególne sumy kolumn MDRD7 - MDRD60
(uwaga uwzględnić tylko te wyniki które wartości parametru sprawności nerek >45)