Bioinformatyka: Wykład 4. R Elementy języka programowania
|
|
- Alicja Kruk
- 8 lat temu
- Przeglądów:
Transkrypt
1 Bioinformatyka: Wykład 4 R Elementy języka programowania
2 Pytanie z poprzedniego wkładu podaj polecenie, które dla zbioru iris wyświetli podzbiór składający się z losowej próby wierszy, próba ma mieć liczebność 20 kolumn 1, 3 i 5.! podaj polecenie, które wygeneruje wykres zależności zmiennej Sepal.Width od zmiennej Petal.Length. Należy dodatkowo narysować obiekty kolorem zależnym od klasy (zmienna Species)
3 WEKTORY LOGICZNE > x10<-runif(10) > x10 [1] > x10>0.5 [1] FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE!! > x10>0.5 ->Mask > Mask [1] FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE > str(mask) logi [1:10] FALSE TRUE TRUE FALSE TRUE FALSE...
4 WEKTORY LOGICZNE > x10[mask] [1] > x10[x10>0.5] [1] ! > which(mask) [1] > which(x10>0.5) [1]
5 WEKTORY ZNAKOWE Pojedynczy napis jest typem podstawowym. Można utworzyć wektory z napisów. Pojedynczy napis NIE JEST wektorem znaków > napis<-"bioinformatyka" > napis [1] "Bioinformatyka" > napis2<c("b","i","o","i","n","f","o","r","m","a","t","y","k","a") > napis2 [1] "B" "i" "o" "i" "n" "f" "o" "r" "m" "a" "t" "y" "k" "a" > napis3<-c("bio","in","for","ma","ty","ka") > napis3 [1] "Bio" "in" "for" "ma" "ty" "ka"
6 WEKTORY ZNAKOWE Pojedynczy napis jest typem podstawowym. Można utworzyć wektory z napisów. Pojedynczy napis NIE JEST wektorem znaków > str(napis) chr "Bioinformatyka" > str(napis2) chr [1:14] "B" "i" "o" "i" "n" "f" "o" "r" "m" "a" "t" "y" "k" "a" > str(napis3) chr [1:6] "Bio" "in" "for" "ma" "ty" "ka" > napis2[3] [1] "o" > napis3[3] [1] "for" > napis[3] [1] NA
7 WEKTORY ZNAKOWE Sklejanie napisów > napis4<-c("b","io","inf","orma","tyka ") > napis4 [1] "B" "io" "inf" "orma" "tyka " > str(napis4) chr [1:5] "B" "io" "inf" "orma" "tyka! > napis2 [1] "B" "i" "o" "i" "n" "f" "o" "r" "m" "a" "t" "y" "k" "a" > paste(napis2,collapse="") [1] "Bioinformatyka" > paste(napis2,collapse=" ") [1] "B i o i n f o r m a t y k a" > paste(napis2,collapse="-") [1] "B-i-o-i-n-f-o-r-m-a-t-y-k-a"
8 WEKTORY ZNAKOWE Sklejanie napisów > AA<-c("a","aa","aaa","aaaa","aaaaa","aaaaaa") > BB<-c("b","bb") > paste(aa,bb) [1] "a b" "aa bb" "aaa b" "aaaa bb" [5] "aaaaa b" "aaaaaa bb" > paste(aa,bb,sep="-") [1] "a-b" "aa-bb" "aaa-b" [5] "aaaa-bb" "aaaaa-b" "aaaaaa-bb" > paste(aa,nb,sep="-",collapse=" ") [1] "a-b aa-bb aaa-b aaaa-bb aaaaa-b aaaaaa-bb" > paste(aa,bb,sep="-",collapse="") [1] "a-baa-bbaaa-baaaa-bbaaaaa-baaaaaa-bb"
9 WEKTORY ZNAKOWE Rozdzielanie napisów - wynik jest listą. > nchar("bioinformatyka") [1] 14 > getwd()-> MyPath > strsplit(mypath,"/") [[1]] [1] "" "Users" "rudnicki" "Documents""dydaktyka" "Bioinformatics" [7] "Białystok" > strsplit(mypath,"/")->mydirectories > nchar(mydirectories) [1] 83 > length(mydirectories) [1] 1 > unlist(mydirectories) [1] "" "Users" "rudnicki" "Documents" "dydaktyka" "Bioinformatics" [7] "Białystok" > nchar(unlist(mydirectories)) [1]
10 CZAS >> Sys.time() [1] " :23:11 CEST" > options(digits.secs=2) > Sys.time() [1] " :23:42.87 CEST"
11 CZAS Dwa sposoby reprezentacji czasu: Klasa POSIXct liczba sekund od początku epoki komputerowej Klasa POSIXlt lista pól określających czas
12 Pola klasy POSIXlt: sec 0 61: sekundy min 0 59: minuty hour 0 23: godziny mday 1 31: dzień miesiąca CZAS mon 0 11: liczba miesięcy, jaka upłynęła od pierwszego miesiąca w roku year lata od roku wday 0 6 dni tygodnia, zaczynające się w niedzielę yday 0 365: dzień roku. isdst flaga czasu letniego. 1 prawda, 0 - fałsz, ujemna jeśli nie wiadomo. zone strefa czasowa, domyślnie - czyli UTC gmtoff przesunięcie w sekundach względem GMT
13 CZAS Na zmiennych czasowych możemy prowadzić proste obliczenia przedziałów czasowych. Należy pamiętać, że czas nie jest w R zwykłą liczbą - ani całkowitą ani rzeczywistą > start.time<-sys.time() > end.time<-sys.time() > interval <- end.time-start.time > interval Time difference of secs > interval2 <- 2*interval > interval^2 Error in Ops.difftime(interval, 2) : '^' nie jest określone dla obiektów klasy "difftime"
14 CZAS Na zmiennych typu czasowego można wykonywać jedynie operację odejmowania. Wynikiem jest obiekt klasy przedział czasu > start.time<-sys.time() > end.time<-sys.time() > interval <- end.time-start.time > end.time.2<- Sys.time() > interval2 <- end.time.2-end.time > interval2 Time difference of mins > interval2-interval Time difference of secs > interval2-10*interval Time difference of secs > interval2*interval Error in `*.difftime`(interval2, interval) : oba argumenty operatora '*' nie mogą być obiektami klasy "difftime"
15 CZAS Na zmiennych typu czasowego można wykonywać jedynie operację odejmowania. Wynikiem jest obiekt klasy przedział czasu > interval2+interval Time difference of secs > start.time+end.time Error in `+.POSIXt`(start.time, end.time) : dwuargumentowy operator '+' nie jest określony dla obiektów klasy "POSIXt" Obiekty typu przedział czasu można dodawać i odejmować. Wynikiem jest obiekt klasy przedział czasu. Nie można dodawać do siebie obiektów klasy czas.
16 KONWERSJE TYPÓW as.posixlt() - Rzutowanie obiektu na typ POSIXlt. Jeżeli argument jest liczbą, to koniecznie trzeba podać punkt startu, od którego liczony jest czas > z <- as.posixlt(sys.time()) > z [1] " :12:30.37 CEST" > as.posixlt( ,tz="cet",origin=" :00:00") [1] " :25:55 CEST" > as.posixlt( ,tz="cet",origin=" :00:00") [1] " :34:05 CET"!
17 KONWERSJE TYPÓW unclass() - Rzutowanie obiektu specyficznego typu na typ podstawowy > zlt <- as.posixlt(sys.time()) > zct <- Sys.time() > zlt [1] " :12:30.37 CEST" > zct [1] " :12:39.48 CEST" > mode(zct) [1] "numeric" > unclass(zct) [1] > mode(zlt) [1] "list" > unclass(zlt)
18 KONWERSJE TYPÓW unclass() - Rzutowanie obiektu specyficznego typu na typ podstawowy > zlt <- as.posixlt(sys.time()) > zct <- Sys.time() > zlt [1] " :12:30.37 CEST" > zct [1] " :12:39.48 CEST" > mode(zct) [1] "numeric" > unclass(zct) [1] > mode(zlt) [1] "list" > unclass(zlt) $sec [1] $min [1] 56 $hour [1] 20 $mday [1] 5 $mon [1] 11 $year [1] 115 $wday [1] 6 $yday [1] 338 $isdst [1] 0 $zone [1] "CET" $gmtoff [1] 3600 attr(,"tzone") [1] "" "CET" "CEST"
19 KONWERSJE TYPÓW unlist() - rzutowanie listy na wektor > zlt <- as.posixlt(sys.time()) > zlt [1] " :12:39.48 CEST" > unlist(zlt) sec min hour mday " " "41" "22" "5" mon year wday yday "11" "115" "6" "338" isdst zone gmtoff "0" "CET" "3600"
20 PRIORYTET OPERATORÓW [ [[ - Indeksowanie - dostęp do pól, składowych ^ ** - potęgowanie operatory unarne : - generowanie sekwencji %coś% operatory specjalne * / - mnożenie, dzielenie dodawanie, odejmowanie ==!= < > <= >=! - negacja logiczna
21 PRIORYTET OPERATORÓW! - negacja logiczna & && iloczyn logiczny (wektorowy i skalarny)* - suma logiczna (wektorowo i skalarnie)* ~ - zależność w formule -> ->> przypisanie w prawo = <-? - przypisanie (z prawej w lewą) - przypisanie (z prawej w lewą) - pomoc! * operacje & oraz wykonujemy wektorowo, natomiast && oraz służą do tworzenia warunków w instrukcjach warunkowych if, ifelse, while.
22 DEFINIOWANIE FUNKCJI Funkcja jest definiowana przy pomocy słowa kluczowego function. Jest obiektem, który może być przypisywany na zmienną, może być argumentem innej funkcji, elementem listy, wektora itp. > AddNumbers <- function(a,b){ c <- a+b return(c) } > AddNumbers(3,5) [1] 5
23 DEFINIOWANIE FUNKCJI Funkcja jest definiowana przy pomocy słowa kluczowego function. Argumenty są przekazywane przez wartość Zmienne są lokalne i znikają po wykonaniu funkcji Każda funkcja zwraca wynik, wartością wyniku jest wartość ostatneiego wyrażenia w funkcji. Możemy (i należy dla jasności) użyć słowa kluczowego return Można zdefiniować anonimową funkcję w miejscu jej wykonania. > apply(myarray,2, function(x) sd(x)/mean(x) )
24 UNIKANIE PROSTYCH BŁĘDÓW Piszemy nawiasy przy wołaniu funkcji > ls function (name, pos = -1L, envir = as.environment(pos), all.names = FALSE, pattern, sorted = TRUE) { if (!missing(name)) { } } <bytecode: 0x7ff01017d7c0> <environment: namespace:base> > ls() [1] "AddNumbers" "ddz" "dz" "end.time" "end.time. 2" "interval" "interval2" "Iris" "iris.lm"
25 UNIKANIE PROSTYCH BŁĘDÓW Przy podawaniu ścieżek w Windows piszemy podwóje ukośniki (backslash) >! MyData<- read.csv( D:\\data\\MyLab\\example.csv )! ukośnik \ ma specjalne znaczenie (escape character) i dlatego do zapisania samego ukośnika musimy użyć dwóch
26 UNIKANIE PROSTYCH BŁĘDÓW Uważajmy na niepotrzebne spacje > x < -pi BŁĄD: nie znaleziono obiektu 'x' > x<-3.14 > x < -pi [1] FALSE > x <- pi > x [1]
27 UNIKANIE PROSTYCH BŁĘDÓW Uważajmy na komendy edytowane w wielu liniach! > x < ! >! x [1] 15 >! x < >! [1] 9 >! x [1] 6! Uważajmy na operatory = i ==! > x = > x ==
28 UNIKANIE PROSTYCH BŁĘDÓW Pamiętajmy jakie argumenty przyjmują funkcje > mean(3,4,5) #funkcja z jednym argumentem [1] 3 > mean(c(3,4,5)) #argument ma być wektorem [1] 4 > max(3,4,5) # funkcja przyjmuje wiele argumentów [1] 5 > max(1:3,2:4) [1] 4 > pmax(1:3,2:4) # funkcja liczy warunek wektorowo [1] > min(1:3,2:4) [1] 1 > pmin(1:3,2:4) [1] 1 2 3
29 KATALOG ROBOCZY Funkcje do wypisania i zmiany katalogu roboczego getwd() - GET Work Directory setwd() - SET Work Directory > getwd() [1] "/Users/rudnicki" > setwd("documents/dydaktyka/bioinformatics/") > getwd() [1] "/Users/rudnicki/Documents/dydaktyka/Bioinformatics" > setwd("/users/rudnicki/documents/dydaktyka/") > getwd() [1] "/Users/rudnicki/Documents/dydaktyka/"
30 OBSŁUGA PAKIETÓW Funkcje search() - wypisuje pakiety załadowane do pamięci library( LibName ) - ładuje pakiet o nazwie LibName, wywołana bez argumentu wypisuje zainstalowane pakiety require( LibName ) - ładuje bibliotekę o nazwie LibName jeśli jest potrzebna w skrypcie (generuje ostrzeżenie zamiast błędu jeśli biblioteki nie ma) detach(package:whatever) - usuwa pakiet whatever z przestrzeni roboczej sesji R install.packages( PackageName ) - instaluje bibliotekę o nazwie PackageName z serwera CRAN (użytkownik jest proszony o podanie serwera CRAN z listy)
31 OBSŁUGA PAKIETÓW > search() [1] ".GlobalEnv" "package:randomforest" "tools:rgui" [4] "package:stats" "package:graphics" "package:grdevices" [7] "package:utils" "package:datasets" "package:methods" [10] "Autoloads" "package:base" > library("boruta") Ładowanie wymaganego pakietu: rferns > search() [1] ".GlobalEnv" "package:boruta" "package:rferns" [4] "package:randomforest" "tools:rgui" "package:stats" [7] "package:graphics" "package:grdevices" "package:utils" [10] "package:datasets" "package:methods" "Autoloads" [13] "package:base" > detach(package:boruta) > detach(package:rferns) > search() [1] ".GlobalEnv" "package:randomforest" "tools:rgui" [4] "package:stats" "package:graphics" "package:grdevices" [7] "package:utils" "package:datasets" "package:methods" [10] "Autoloads" "package:base"
32 OBSŁUGA PAKIETÓW > install.packages("rferns") Installing package into /Users/rudnicki/Library/R/3.2/library (as lib is unspecified) --- Proszę wybrać serwer lustrzany CRAN do użycia w tej sesji --- Jest dostępna wersja binarna ale wersja ze źródłami jest późniejsza: binary source needs_compilation rferns TRUE Do you want to install from sources the package which needs compilation? y/n: y installing the source package rferns! próbowanie adresu URL ' Content type 'application/x-gzip' length bytes (18 KB) ================================================== downloaded 18 KB * installing *source* package rferns... ** pakiet rferns został pomyślnie rozpakowany oraz sumy MD5 zostały sprawdzone ** libs
33 OBSŁUGA PAKIETÓW > install.packages("rferns") clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/usr/local/ include -I/usr/local/include/freetype2 -I/opt/X11/include -fpic -Wall - mtune=core2 -g -O2 -c ferns.c -o ferns.o clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup - single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/ Resources/lib -L/usr/local/lib -o rferns.so ferns.o -F/Library/Frameworks/ R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation installing to /Users/rudnicki/Library/R/3.2/library/rFerns/libs ** R ** inst ** preparing package for lazy loading ** help *** installing help indices ** building package indices ** testing if installed package can be loaded * DONE (rferns) Pobrane pakiety źródłowe są w /private/var/folders/4j/lyt_c98s1b147vfnlq9h2hrc0000gp/t/rtmp4zxgm0/ downloaded_packages >
34 WCZYTYWANIE DANYCH Uwaga ogólna - R nie jest najlepszym narzędziem do pracy z plikami tekstowymi. To wynik zastosowania w praktyce filozofii Uniksa - skoro istnieje mnóstwo innych narzędzi doskonale nadających się do obróbki plików tekstowych, to nie zajmujmy się tym zadaniem, użyjmy do obróbki tekstu np. awk, sed, perl, python itp.
35 WCZYTYWANIE DANYCH funkcje R do czytania danych spodziewają się danych w postaci tabeli i wczytują je do ramki danych (data.frame) read.table() read.csv(), read.csv2() read.ftable() read.delim(), read.delim2() Zapisywanie danych w wersji tekstowej write.csv() write.table()
36 WCZYTYWANIE DANYCH - EXCEL Dane występują często w formacie XLS lub XLSX Standardowy R nie obsługuje tych formatów, ale można: 1. Skopiować dane do schowka i użyć funkcji read.table( clipboard ) 2. Zapisać dane z excela do pliku CSV i użyć funkcji read.csv() 3. Użyć pakietu gdata require(gdata) df = read.xls ("myfile.xlsx"), sheet = 1, header = TRUE) 4. Użyć pakietu XLConnect require(xlconnect) wb = loadworkbook("myfile.xlsx") df = readworksheet(wb, sheet = "Sheet1", header = TRUE) 5. Użyć pakietu xlsx require(xlsx) read.xlsx("myfile.xlsx", sheetname = Sheet1") #read.xlsx2( myfile.xlsx", sheetname = "Sheet1")
37 PLIKI RDATA Natywny format plików danych R Obsługiwany funkcjami load() save() > ls() [1] "interval2" "Iris" "iris.lm" "iris10" "my.table" "MySample" [7] "rownames" > save(my.table,file="giss.rdata") > rm(my.table) > ls() [1]"interval2" "Iris" "iris.lm" "iris10" "MySample" "rownames" > load("giss.rdata") > ls() [1] ""interval2" "Iris" "iris.lm" "iris10" "my.table" "MySample" [7] "rownames"
38 OPERACJE NA RAMKACH Łączenie ramek danych cbind(df1,df2,df3, ) - Column bind - dołącza do df1 kolumny z df2, df3 itd. Wynik jest nową ramką o liczbie kolumn równej sumie liczb kolumn ramek wejściowych. rbind(df1,df2,df3, ) - Row bind - dołącza do df1 wiersze z df2, df3 itd. Wynik jest nową ramką o liczbie wierszy równiej sumie liczb wierszy w ramkach wejściowych merge(df1,df2, ) - łączy ramki według wspólnej kolumny do df1 wiersze z df2, df3 itd. Wynik jest nową ramką o liczbie wierszy równiej sumie liczb wierszy w ramkach wejściowych. Polecenie analogiczne do operacji join w SQL.
39 OPERACJE NA RAMKACH Ułatwienie w przywoływaniu kolumn with(dfname, ) - operacje przeprowadzone w nawiasie na kolumnach ramki nie muszą odwoływać się do nazwy ramki. attach(dfname) - kolumny ramki są dołączone do przestrzeni nazw w ramach sesji. > head(giss.temp) Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec > tail(giss.temp) Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ** **
40 OPERACJE NA RAMKACH Ułatwienie w przywoływaniu kolumn > with(giss.temp,as.numeric(as.character(nov)))->giss.temp$nov Warning message: In eval(expr, envir, enclos) : pojawiły się wartości NA na skutek przekształcenia > with(giss.temp,as.numeric(as.character(dec)))->giss.temp$dec Warning message: In eval(expr, envir, enclos) : pojawiły się wartości NA na skutek przekształcenia > tail(giss.temp) Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec NA NA
41 OPERACJE NA RAMKACH Ułatwienie w przywoływaniu kolumn > GISS.temp$Q1<-with(GISS.temp,(Jan+Feb+Mar)/3) > GISS.temp$Q2<-with(GISS.temp,(Apr+May+Jun)/3) > GISS.temp$Q3<-with(GISS.temp,(Jul+Aug+Sep)/3) > GISS.temp$Q4<-with(GISS.temp,(Oct+Nov+Dec)/3) > GISS.temp$Mean<-with(GISS.temp,(Q1+Q2+Q3+Q4)/4) > head(giss.temp) Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Q1 Q2 Q3 Q4 Mean > tail(giss.temp) Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Q1 Q2 Q3 Q4 Mean NA NA NA NA
42 OPERACJE NA RAMKACH > apply(giss.temp[,1:13],2,max,na.ommit=true) Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec NA NA > tail(giss.temp[,1:13],5) Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec NA NA > apply(giss.temp[,14:17],2,max,na.ommit=true) Q1 Q2 Q3 Q NA > tail(giss.temp[,14:17],5) Q1 Q2 Q3 Q NA
43 OPERACJE NA RAMKACH > GISS.temp[123:136,c(1,14:17)] Year Q1 Q2 Q3 Q NA
44 RAMKA DANYCH Wg Paul Teetor R Cookbook, O Reilly 2011 Dla statystyka Tablica obserwacji. Wiersz zawiera obserwację, kolumna zmienne. Można odwoływać się do kolumn po numerze lub po nazwie. Dla programisty SQL Tablica, rezydująca w pamięci. Można ją zapisać do pliku, nie trzeba deklarować typów danych - R robi to automatycznie Dla użytkownika Excela Arkusz kalkulacyjny. Bardziej ograniczony bo komórki muszą mieć określony typ, taki sam w całej kolumnie. Dla użytkownika SAS Dla programisty R Dla informatyka Dla managera
45 RAMKA DANYCH Wg Paul Teetor R Cookbook, O Reilly 2011 Dla statystyka Dla programisty SQL Dla użytkownika Excela Dla użytkownika SAS Odpowiednik dataset. Można ją zapisać do pliku, ale w trakcie operacji musi rezydować w pamięci operacyjnej. Dla programisty R Hybrydowa struktura danych, pośrednia między tablicą a listą. Może zawierać liczby, napisy i faktory, nie można ich mieszać w jednej kolumnie. Można na niej prowadzić działania jak na macierzy. Jest również listą kolumn - można się do niej odwoływać operatorami działającymi na listach. Dla informatyka Dla managera
46 RAMKA DANYCH Wg Paul Teetor R Cookbook, O Reilly 2011 Dla statystyka Dla programisty SQL Dla użytkownika Excela Dla użytkownika SAS Dla programisty R Dla informatyka Prostokątna struktura danych. Kolumny mają określony typ (numeryczny, znakowy lub faktor), Kolumny muszą mieć etykiety, wiersze mogą mieć etykiety. Można ją indeksować numerycznie (numer wiersza/kolumny) lub według nazw (odpowiednio wierszy i kolumn). Można również używać operatorów listowych do operowanie na kolumnach - można traktować ją jako listę kolumn. Dla managera Możesz tam zapisywać liczby i nazwy. To jest łatwe - to taka mała baza danych. Twoi pracownicy będą zachwyceni używając ramek danych.
47 RODZINA FUNKCJI APPLY apply() lapply() sapply() tapply() mapply() oraz podobne zastosowanie by()
48 RODZINA FUNKCJI APPLY lapply() - argumentem jest lista, wynikiem też jest lista. sapply() - argumentem jest lista, wynikiem jest wektor - jeżeli tylko to możliwe. > lapply(iris[,1:4],mean) $Sepal.Length [1] $Sepal.Width [1] $Petal.Length [1] $Petal.Width [1] > sapply(iris[,1:4],mean) Sepal.Length Sepal.Width Petal.Length Petal.Width
49 RODZINA FUNKCJI APPLY apply() - argumentem jest macierz, wynikiem wektor, można ją stosować do macierzy i list, ale lista musi mieć wszystkie kolumny tego samego typu. > sapply(iris[,1:4],mean) Sepal.Length Sepal.Width Petal.Length Petal.Width ! > apply(iris[,1:4],2,mean) Sepal.Length Sepal.Width Petal.Length Petal.Width ! > apply(iris[,1:4],1,mean)->iris.mean.dim > iris.mean.dim[c(1:5,51:55,101:105)] [1]
50 RODZINA FUNKCJI APPLY tapply() - argumentem jest wektor, i faktor użyty do grupowania tego wektora, wynikiem jest wektor o długości równej liczbie unikatowych wartości faktora > tapply(iris[,1],iris$species,mean) setosa versicolor virginica > tapply(iris[,2],iris$species,mean) setosa versicolor virginica > tapply(iris[,3],iris$species,mean) setosa versicolor virginica > tapply(iris[,4],iris$species,mean) setosa versicolor virginica
51 RODZINA FUNKCJI APPLY tapply() - argumentem jest wektor, i faktor użyty do grupowania tego wektora, wynikiem jest wektor o długości równej liczbie unikatowych wartości faktora > by(iris[,1:4],iris$species,summary) iris$species: setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.300 Min. :2.300 Min. :1.000 Min. : st Qu.: st Qu.: st Qu.: st Qu.:0.200 Median :5.000 Median :3.400 Median :1.500 Median :0.200 Mean :5.006 Mean :3.428 Mean :1.462 Mean : rd Qu.: rd Qu.: rd Qu.: rd Qu.:0.300 Max. :5.800 Max. :4.400 Max. :1.900 Max. :
52 RODZINA FUNKCJI APPLY > by(iris[,1:4],iris$species,summary) iris$species: versicolor Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.900 Min. :2.000 Min. :3.00 Min. : st Qu.: st Qu.: st Qu.:4.00 1st Qu.:1.200 Median :5.900 Median :2.800 Median :4.35 Median :1.300 Mean :5.936 Mean :2.770 Mean :4.26 Mean : rd Qu.: rd Qu.: rd Qu.:4.60 3rd Qu.:1.500 Max. :7.000 Max. :3.400 Max. :5.10 Max. : iris$species: virginica Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.900 Min. :2.200 Min. :4.500 Min. : st Qu.: st Qu.: st Qu.: st Qu.:1.800 Median :6.500 Median :3.000 Median :5.550 Median :2.000 Mean :6.588 Mean :2.974 Mean :5.552 Mean : rd Qu.: rd Qu.: rd Qu.: rd Qu.:2.300 Max. :7.900 Max. :3.800 Max. :6.900 Max. :2.500
53 RODZINA FUNKCJI APPLY > by(iris[,1:4],iris$species,summary) iris$species: setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.300 Min. :2.300 Min. :1.000 Min. : st Qu.: st Qu.: st Qu.: st Qu.:0.200 Median :5.000 Median :3.400 Median :1.500 Median :0.200 Mean :5.006 Mean :3.428 Mean :1.462 Mean : rd Qu.: rd Qu.: rd Qu.: rd Qu.:0.300 Max. :5.800 Max. :4.400 Max. :1.900 Max. : iris$species: versicolor Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.900 Min. :2.000 Min. :3.00 Min. : st Qu.: st Qu.: st Qu.:4.00 1st Qu.:1.200 Median :5.900 Median :2.800 Median :4.35 Median :1.300 Mean :5.936 Mean :2.770 Mean :4.26 Mean : rd Qu.: rd Qu.: rd Qu.:4.60 3rd Qu.:1.500 Max. :7.000 Max. :3.400 Max. :5.10 Max. : iris$species: virginica Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.900 Min. :2.200 Min. :4.500 Min. : st Qu.: st Qu.: st Qu.: st Qu.:1.800 Median :6.500 Median :3.000 Median :5.550 Median :2.000 Mean :6.588 Mean :2.974 Mean :5.552 Mean : rd Qu.: rd Qu.: rd Qu.: rd Qu.:2.300 Max. :7.900 Max. :3.800 Max. :6.900 Max. :2.500
54 RODZINA FUNKCJI APPLY > by(iris[,1:4],iris$species,summary) iris$species: setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.300 Min. :2.300 Min. :1.000 Min. : st Qu.: st Qu.: st Qu.: st Qu.:0.200 Median :5.000 Median :3.400 Median :1.500 Median :0.200 Mean :5.006 Mean :3.428 Mean :1.462 Mean : rd Qu.: rd Qu.: rd Qu.: rd Qu.:0.300 Max. :5.800 Max. :4.400 Max. :1.900 Max. : iris$species: versicolor Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.900 Min. :2.000 Min. :3.00 Min. : st Qu.: st Qu.: st Qu.:4.00 1st Qu.:1.200 Median :5.900 Median :2.800 Median :4.35 Median :1.300 Mean :5.936 Mean :2.770 Mean :4.26 Mean : rd Qu.: rd Qu.: rd Qu.:4.60 3rd Qu.:1.500 Max. :7.000 Max. :3.400 Max. :5.10 Max. : iris$species: virginica Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.900 Min. :2.200 Min. :4.500 Min. : st Qu.: st Qu.: st Qu.: st Qu.:1.800 Median :6.500 Median :3.000 Median :5.550 Median :2.000 Mean :6.588 Mean :2.974 Mean :5.552 Mean : rd Qu.: rd Qu.: rd Qu.: rd Qu.:2.300 Max. :7.900 Max. :3.800 Max. :6.900 Max. :2.500
55 STYL!= MODA Styl programowania jest ważny: przejrzysty i spójny styl sprzyja unikaniu prostych błędów zrozumieniu kodu skłania ku tworzeniu właściwych struktur Trzymanie się ogólnie przyjętych reguł ułatwia życie programiście i użytkownikom zwalnia od wymyślania własnych reguł ułatwia jego wykorzystanie w innych programach Innym Programistom dwa (dni/tygodnie/miesiące/lata) po napisaniu kodu Ty też będziesz Innym Programistą
56 STYL!= MODA Podstawowe reguły przyjęte w społeczności R Nazwy plików powinny być informatywne i mieć rozszerzenie.r dobre linear_fit.r cross_validated_randomforest.r złe aaa.r fun1.r Jeżeli w skrypcie będą wykorzystywane w ustalonej kolejności dodaj numer PRZED nazwą 0-init_data_structures.R 1-read_data.R 2-do_calculations.R
57 Nazywanie zmiennych STYL!= MODA Nazwy zmiennych i funkcji powinny być pisane małymi literami powinny być opisowe - nazwa funkcji powinna zawierać czynności, nazwa zmiennej odnosić się do zawartości. Nazwy muszą być krótkie nazwy składające się z wielu wyrazów łączymy podkreśleniami. dopuszczalny jest tzw CamelCase - ale to jest gorsze rozwiązanie. jeżeli istnieje choć minimalna szansa, że kod będzie używany międzynarodowo, piszemy po angielsku dobrze start_day, last_day złe first_day_of_the_pneumonia_study day1.
58 Światło - więcej światła STYL!= MODA w definicjach fukcji przechodzimy do nowej lini po nawiasie klamrowym, zawsze używamy nawiasów klamrowych w definicji funkcj zamykamy blok tekstu nawiasem klamrowym w oddzialnej linii, do wcinania kodu używamy spacji (zwyczajowo dwie spacje) operatory otaczamy spacjami (zarówno operacje arytmetyczne, jak i przypisywanie i porównania. Nawiasy, oddzielamy od innego tekstu spacjami, za wyjątkiem wywołań funkcji długość linii - staraj się ograniczać do 80 linii. Jeśli często używasz wiecej znaków w linii to znaczy, że czegoś nie nie można uprościć - zdefiniować powtarzalne funkcje.
Instalacja Pakietu R
Instalacja Pakietu R www.r-project.org wybór źródła wybór systemu operacyjnego: Download R for Windows opcja: install R for the first time opcja: Download R 3.3.3 for Windows uruchomienie R-3.3.3-win MAGDA
Modelowanie rynków finansowych z wykorzystaniem pakietu R
Modelowanie rynków finansowych z wykorzystaniem pakietu R Wprowadzenie do pakietu R Mateusz Topolewski woland@mat.umk.pl Wydział Matematyki i Informatyki UMK Plan działania 1 Co i dlaczego...? 2 Przechowywanie
Bioinformatyka VI. Programowanie Języku R
Bioinformatyka VI Programowanie Języku R WEKTORY R jest językiem wektorowym - wszystkie elementarne struktury danych są wektorami Nawet zmienne zawierające jeden obiekt są wektorami o długości 1 WEKTORY
Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu
Wprowadzenie do Pakietu R dla kierunku Zootechnika Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu Instalacja Pakietu R www.r-project.org wybór źródła wybór systemu operacyjnego:
Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji
Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki Podstawy Informatyki i algorytmizacji wykład 1 dr inż. Maria Lachowicz Wprowadzenie Dlaczego arkusz
Języki skryptowe w programie Plans
Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów
Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
Technologie informacyjne: Arkusz kalkulacyjny
Wrocław, 11.05.2018 Technologie informacyjne: Arkusz kalkulacyjny Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Podstawy korzystania z arkuszy kalkulacyjnych. 1/68
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI
UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Pakiet R: Cz. II Strona 1 z 7 OBIEKTY Faktory (factors) Faktor jest specjalną strukturą, przechowującą
Pakiety Matematyczne - R Zestaw 2.
Pakiety Matematyczne - R Zestaw 2. Część przykładów pochodzi z helpa do R i z książki: R.Biecek, Przewodnik po pakiecie R, GIS 2014, strona www: http://www.biecek.pl, Instrukcje warunkowe Składnia instrukcji
Instrukcje. Operatory. Operatory. Instrukcje sterujące. wyrażenie1 && wyrażenie2 ;
Instrukcje wyrażenie1 if wyrażenie2 ; wyrażenie1 until wyrażenie2 ; wyrażenie1 wyrażenie2 ; wyrażenie1 wyrażenie2 ; wyrażenie1? wyrażenie2 : wyrażenie3 ; if (wyrażenie) blok [ [ elsif (wyrażenie) blok...
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2
Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone
WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA
WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA PRZEDMIOT : : LABORATORIUM PODSTAW AUTOMATYKI 1. WSTĘP DO
Mikrokontroler ATmega32. Język symboliczny
Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami
Metody numeryczne Laboratorium 2
Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania
1. Indeksy/indeksowanie : Do elementów wektora, list, macierzy czy ramek, można się odwołać na kilka sposobów.
Rachunek Prawdopodobieństwa i Statystyka lab 2. Kaja Chmielewska ( Kaja.Chmielewska@cs.put.poznan.pl ) 1. Indeksy/indeksowanie : Do elementów wektora, list, macierzy czy ramek, można się odwołać na kilka
Część 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
Matlab Składnia + podstawy programowania
Matlab Składnia + podstawy programowania Matlab Matrix Laboratory środowisko stworzone z myślą o osobach rozwiązujących problemy matematyczne, w których operuje się na danych stanowiących wielowymiarowe
Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA
Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający
Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo
Operatory w C++ Operatory arytmetyczne + dodawanie - odejmowanie * mnożenie / dzielenie % modulo Operatory relacyjne (porównania) < mniejszy niż większy niż >= większy lub równy
Ćwiczenie 1. Wprowadzenie do programu Octave
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do
Należy ściągnąć oprogramowanie Apache na platformę
Programowanie Internetowe Język PHP - wprowadzenie 1. Instalacja Oracle+Apache+PHP Instalacja Apache, PHP, Oracle Programy i ich lokalizacja Oracle Database 10g Express Edition10.2 http://www.oracle.com/technology/products/database/
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to
Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1
Rachunek Prawdopodobieństwa i Statystyka lab 3. Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) 1. Funkcje: - Funkcje nie powinny korzystać ze zmiennych globalnych. - Funkcje powinny być możliwie krótkie.
1. Operacje na plikach i katalogach Chcąc przeprowadzić analizę danych należy załadować/wczytać dane do R, a wyniki z pewnością chcemy zapisać.
Rachunek Prawdopodobieństwa i Statystyka lab 5 Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) Pliki do pobrania: -http://www.cs.put.poznan.pl/kgutowska/rpis/dane/dane.csv -http://www.cs.put.poznan.pl/kgutowska/rpis/dane/dane2.csv
Języki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
1. Operacje na plikach i katalogach Chcąc przeprowadzić analizę danych należy załadować/wczytać dane do R, a wyniki z pewnością chcemy zapisać.
Rachunek Prawdopodobieństwa i Statystyka lab 5 i lab 6. Kaja Chmielewska (Kaja.Chmielewska@cs.put.poznan.pl) Pliki do pobrania: -http://www.cs.put.poznan.pl/kchmielewska/rpis/dane/dane.csv -http://www.cs.put.poznan.pl/kchmielewska/rpis/dane/dane2.csv
Temat: Arkusze kalkulacyjne. Program Microsoft Office Excel. Podstawy
Temat: Arkusze kalkulacyjne. Program Microsoft Office Excel. Podstawy Arkusz kalkulacyjny to program przeznaczony do wykonywania różnego rodzaju obliczeń oraz prezentowania i analizowania ich wyników.
Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python
Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język PYTHON Podstawowe informacje Python to język skryptowy, interpretowany - co oznacza, że piszemy skrypt, a następnie wykonujemy go za
Temat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Wprowadzenie do R. log(1) ## [1] 0. sqrt(3) ## [1] sin(x = 2*pi) ## [1] e-16
Wprowadzenie do R Poniższa notatka powstała na podstawie materiałów Kamila Dyby. Zacznijmy od rzeczy elementarnych czyli operacji na liczbach # Operacje arytmetyczne 1+1 2*2 3^2 5%%3 log(1) [1] 0 sqrt(3)
Wprowadzenie do MS Excel
Wprowadzenie do MS Excel Czym jest Excel? Excel jest programem umożliwiającym tworzenie tabel, a także obliczanie i analizowanie danych. Należy do typu programów nazywanych arkuszami kalkulacyjnymi. W
Wstęp do Programowania Lista 1
Wstęp do Programowania Lista 1 1 Wprowadzenie do środowiska MATLAB Zad. 1 Zapoznaj się z podstawowymi oknami dostępnymi w środowisku MATLAB: Command Window, Current Folder, Workspace i Command History.
Python wstęp do programowania dla użytkowników WCSS
Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka
C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010
Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010 Czym jest Excel 2010 Excel jest programem umożliwiającym tworzenie tabel, a także obliczanie i analizowanie danych. Należy do typu
Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku
1 Powtórzenie wiadomości
1 Powtórzenie wiadomości Zadanie 1 Napisać program, który w trybie dialogu z użytkownikiem przyjmie liczbę całkowitą, a następnie wyświetli informację czy jest to liczba parzysta czy nieparzysta oraz czy
Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.
Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane
Język C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL
Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie
dr inż. Jarosław Forenc
Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 8/9 Wykład nr 4 (.3.9) Rok akademicki 8/9, Wykład nr 4 /33 Plan wykładu
Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.
PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne
Przetwarzanie sygnałów
Spis treści Przetwarzanie sygnałów Ćwiczenie 1 Wprowadzenie do programu Octave 1 Operatory 1 1.1 Operatory arytmetyczne...................... 1 1.2 Operatory relacji.......................... 1 1.3 Operatory
Podstawy Informatyki i algorytmizacji
Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki Podstawy Informatyki i algorytmizacji dr inż. Maria Lachowicz Zagadnienia poruszane w ramach wykładu
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Cw.12 JAVAScript w dokumentach HTML
Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane
Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:
Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych
Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych Projekt: Wdrożenie strategii szkoleniowej prowadzony przez KancelarięPrezesa Rady Ministrów Projekt współfinansowany przez
Obliczenia inżynierskie arkusz kalkulacyjny. Technologie informacyjne
Obliczenia inżynierskie arkusz kalkulacyjny Technologie informacyjne Wprowadzanie i modyfikacja danych Program Excel rozróżnia trzy typy danych: Etykiety tak określa sie wpisywany tekst: tytuł tabeli,
140, , ,000 80, ROK
140,000 PRODUKCJA 120,000 100,000 80,000 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 ROK 130,000 120,000 PRODUKCJA 110,000 100,000 90,000 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008
Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:
Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak: accept - typy zawartości MIME akceptowane przez serwer (opcjonalny) accept-charset - zestaw znaków akceptowanych
Visual Basic for Application (VBA)
Visual Basic for Application (VBA) http://dzono4.w.interia.pl Książka Visual Basic dla aplikacji w Office XP PL, autorzy: Edward C. Willett i Steve Cummings, Wyd. Helion Typy zmiennych Różne dane różnie
Algorytmika i Programowanie VBA 1 - podstawy
Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy
Elementy metod numerycznych - zajęcia 9
Poniższy dokument zawiera informacje na temat zadań rozwiązanych w trakcie laboratoriów. Elementy metod numerycznych - zajęcia 9 Tematyka - Scilab 1. Labolatoria Zajęcia za 34 punktów. Proszę wysłać krótkie
Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.
Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania
ARKUSZ KALKULACYJNY komórka
ARKUSZ KALKULACYJNY Arkusz kalkulacyjny program służący do obliczeń, kalkulacji i ich interpretacji graficznej w postaci wykresów. Przykłady programów typu Arkusz Kalkulacyjny: - Ms Excel (*.xls; *.xlsx)
Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3
Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3 Slajd 1 Excel Slajd 2 Adresy względne i bezwzględne Jedną z najważniejszych spraw jest tzw. adresacja. Mówiliśmy
Ćwiczenie 1. Wprowadzenie do programu Octave
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do
Visual Basic for Application (VBA)
Visual Basic for Application (VBA) http://dzono4.w.interia.pl Książka Visual Basic dla aplikacji w Office XP PL, autorzy: Edward C. Willett i Steve Cummings, Wyd. Helion Typy zmiennych Różne dane różnie
Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?
Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz
Podstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym
S t r o n a 1 Bożena Ignatowska Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym Wprowadzenie W artykule zostaną omówione zagadnienia związane z wykorzystaniem funkcji tekstowych w arkuszu
Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy
Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 MySQL i programowanie wsadowe C:\wyklady\bazy> mysql < nazwa pliku
Ćwiczenia Skopiować do swojego folderu plik cwiczenia-kl.ii.xls, a następnie zmienić jego nazwę na imię i nazwisko ucznia
Temat 23 : Poznajemy podstawy pracy w programie Excel. 1. Arkusz kalkulacyjny to: program przeznaczony do wykonywania różnego rodzaju obliczeń oraz prezentowania i analizowania ich wyników, utworzony (w
/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
Podstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych
1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje
Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2
Pętle wielokrotne wykonywanie ciągu instrukcji. Bardzo często w programowaniu wykorzystuje się wielokrotne powtarzanie określonego ciągu czynności (instrukcji). Rozróżniamy sytuacje, gdy liczba powtórzeń
Matlab Składnia + podstawy programowania
Matlab Składnia + podstawy programowania Matlab Matrix Laboratory środowisko stworzone z myślą o osobach rozwiązujących problemy matematyczne, w których operuje się na danych stanowiących wielowymiarowe
Bazy Danych i Usługi Sieciowe
Bazy Danych i Usługi Sieciowe Język PHP Paweł Witkowski Wydział Matematyki, Informatyki i Mechaniki Jesień 2011 P. Witkowski (Wydział Matematyki, Informatyki i Mechaniki) BDiUS w. VIII Jesień 2011 1 /
Wstęp do Informatyki dla bioinformatyków
Wstęp do Informatyki dla bioinformatyków Wykład 12 - Programowanie w BASHu Trochę bardziej zaawansowane Bartek Wilczyński 25.1.2016 Organizacyjne Bardzo proszę o wypełnienie ankiet w USOS Szczególnie zależy
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
-Instalacja R: -Instalacja RStudio:
Rachunek Prawdopodobieństwa i Statystyka lab 1. Kaja Chmielewska (Kaja.Chmielewska@cs.put.poznan.pl) 1. Krótko o R R jest wolnym (otwartym i darmowym), zaawansowanym środowiskiem oraz językiem programowania.
4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
Podstawy Programowania
Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl
Wprowadzenie do środowiska
Wprowadzenie do środowiska www.mathworks.com Piotr Wróbel piotr.wrobel@igf.fuw.edu.pl Pok. B 4.22 Metody numeryczne w optyce 2017 Czym jest Matlab Matlab (matrix laboratory) środowisko obliczeniowe oraz
JAVAScript w dokumentach HTML - przypomnienie
Programowanie obiektowe ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w
Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski
Podstawy Pythona Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski Słownik jest typem mutowalnym. Każdy element to para: klucz wartość. W celu stworzenia słownika pary klucz wartość umieszczamy
Programowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
JAVAScript w dokumentach HTML (1)
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje
Administracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 3 Podstawy programowania w T-SQL Zmienne i operatory Instrukcje sterujące Komunikaty Format daty
Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)
Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) // to jest pojedynczy komentarz (1-linijkowy) to jest wielolinijkowy komentarz Budowa "czystego" skryptu PHP (tak
Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]
1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA JavaScript tak
Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby
Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie
SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego
1 SKRYPTY Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego z = 1 y + 1+ ( x + 2) 3 x 2 + x sin y y + 1 2 dla danych wartości x = 12.5 i y = 9.87. Zadanie to można rozwiązać: wpisując dane i wzór wyrażenia