T R Rstudio www rproject org www rstudio

  • Slides: 46
Download presentation
İTÜ R Rstudio www. r-project. org www. rstudio. org Uçak ve Uzay Bilimleri Fakültesi

İTÜ R Rstudio www. r-project. org www. rstudio. org Uçak ve Uzay Bilimleri Fakültesi Meteoroloji Mühendisliği Bölümü uubf. itu. edu. tr TÜBİTAK (111 Y 319) COST (ES 1004) www. havakalitesi. itu. edu. tr toros at itu. edu. tr 1

R -http: //www. r-project. org/ - İstatistik hesaplamalar ve grafikler için geliştirilmiş bir yazılımdır.

R -http: //www. r-project. org/ - İstatistik hesaplamalar ve grafikler için geliştirilmiş bir yazılımdır. - R istatistik (doğrusal ve doğrusal olmayan modelleme, klasik istatistik testleri, zaman-serileri analizi, sınıflandırma, kümeleme, …) ve grafik teknikler vs çok geniş alanı vardır. - Açık kaynak kodludur. - Açık kaynak olduğu için her gün kullanıcı sayısı artmaktadır. - Katkı yapan sayısı artmaktadır - R kaynak kodları, Özgür Yazılım Vakfı GNU Genel Kamu Lisansı altında Özgür Yazılım olarak kullanılabilir. - Linux, UNIX, Windows, Mac. OS vb sistemlerde çalışır. 2

R - R bütünleşik bir yazılım olduğu için veriler, hesaplamalar ve grafik gösterimleri vardır.

R - R bütünleşik bir yazılım olduğu için veriler, hesaplamalar ve grafik gösterimleri vardır. - Etkili bir veri işleme ve depolamaya sahiptir, - Dizi, matris hesaplamaları kolaylıkla yapılabilir. - Basit ve etkili bir programlama dilidir. - Gerçek bir bilgisayar dili etrafında tasarlanmış ve kullanıcıların yeni fonksiyonlar tanımlayarak ek işlevsellik eklemek için izin verir. - C, C ++ ve Fortran kodu bağlantılı olabilir. 3

Niçin R? - Ücretsiz… - İhtiyacınızın büyük çoğunluğu için yazılmış hazır işlevler ve kütüphaneler

Niçin R? - Ücretsiz… - İhtiyacınızın büyük çoğunluğu için yazılmış hazır işlevler ve kütüphaneler mevcut. - R, bir programla dilidir. - Kodların derlenmiş olması gerekmez - Etkileşimli ekranlar vardır - R’nin eksileri ise derlenen dillere göre daha yavaş çalışır 4

- RStudio açık kaynak kodlu ve ticari sürümleri mevcuttur. - Masaüstünde (Windows, Mac ve

- RStudio açık kaynak kodlu ve ticari sürümleri mevcuttur. - Masaüstünde (Windows, Mac ve Linux), RStudio Server, RStudio Sunucu Pro (Debian / Ubuntu, Red. Hat / Cent. OS ve SUSE Linux) bağlı bir tarayıcıda çalışır. 5

-http: //www. rstudio. com/ Betikler için kod yazım alanı, dosyadan açma veya kaydetme Anlık

-http: //www. rstudio. com/ Betikler için kod yazım alanı, dosyadan açma veya kaydetme Anlık komut yazma ve çalıştırma alanı R ile aynı Çalışma alanı, değişkenler, dosyalar, son komutlar vs Çizim sonuçları, paket yükleme ve yardım alanı 6

Dosyaları açmak, kaydetmek, kapatmak Paketleri kurmak, Paketleri kullanmak için ayrıca her seferinde yüklemek gerekir.

Dosyaları açmak, kaydetmek, kapatmak Paketleri kurmak, Paketleri kullanmak için ayrıca her seferinde yüklemek gerekir. Ayarlar yapmak 7

ØHangi klasörde çalışıyor? >getwd() [1] "D: /Documents/Huseyin/projeler/Ankara. CED/veriler“ Ø Çalışma klasörünü nasıl değiştiririm? >setwd("D:

ØHangi klasörde çalışıyor? >getwd() [1] "D: /Documents/Huseyin/projeler/Ankara. CED/veriler“ Ø Çalışma klasörünü nasıl değiştiririm? >setwd("D: /Documents/Huseyin/projeler/Ankara. CED/veriler/Eylul 2014 Veri/") ØHesap Makinesi gibi kullanabilir miyim? >4+3 -9 [1] -2 >6*10+2^4 [1] 76 >90 -9/9*(23 -7) [1] 74 8

ØAritmetik ve mantık işlem işaretleri nelerdir? • • • + toplama - çıkarma *

ØAritmetik ve mantık işlem işaretleri nelerdir? • • • + toplama - çıkarma * çarpma / bölme % mod (kalan) ^ üst • • • ! değil & ve | veya == eşittir != eşit değildir Daha fazla bilgi için >? Syntax >? Comparison deneyebilirsiniz 9

Ø Nasıl yardım alabilirim? • R içinde – – – help(<işlev ismi>) help(sqrt) ?

Ø Nasıl yardım alabilirim? • R içinde – – – help(<işlev ismi>) help(sqrt) ? <işlev ismim> ? sum ? ? <search term> ? ? air • Web sayfasından – www. rseek. org – CRAN – Google’da kelime ve CRAN, sum cran gibi 10

Ø Nasıl değişkenler oluşturabilirim? • Verilerin kabına isim vermek! • Değişken isimleri R için

Ø Nasıl değişkenler oluşturabilirim? • Verilerin kabına isim vermek! • Değişken isimleri R için özel anlamı olmayan herşey • Degisken = veri > sey=4 > sey [1] 4 11

Ø R’de Veri çeşitleri nelerdir? • Vektör o numeric § floating point § integer

Ø R’de Veri çeşitleri nelerdir? • Vektör o numeric § floating point § integer o logical o character • İşlevler • listeler > a <- 101 > length(a) [1] 1 > a[1] 101 > a[2] [1] NA > a[2] <- 202 > length(a) [1] 2 12

ØDiziler / Matrisler 5 x 1’lik dizi 4 x 4’lük matris 13

ØDiziler / Matrisler 5 x 1’lik dizi 4 x 4’lük matris 13

ØDiziler • array(data=NA, dim=length(data), dimnames=NULL) > x <- array(1: 9) > x [1] 1

ØDiziler • array(data=NA, dim=length(data), dimnames=NULL) > x <- array(1: 9) > x [1] 1 2 3 4 5 6 7 8 9 > x <- array(1: 9, c(3, 3)) [, 1] [, 2] [, 3] [1, ] [2, ] [3, ] 1 2 3 4 5 6 7 8 9 > x <- 1: 64 > dim(x) <- c(2, 4, 8) #dim() Vektörü diziye dönüştürür. > is. array(x) [1] TRUE http: //www. endmemo. com/program/R/ 14

ØDiziler • • x x[1, , ] x[1, 2, 1] http: //www. endmemo. com/program/R/

ØDiziler • • x x[1, , ] x[1, 2, 1] http: //www. endmemo. com/program/R/ 15

ØTarih • date() • Sys. time() • Sys. Date() • class(date()) • class(Sys. Date())

ØTarih • date() • Sys. time() • Sys. Date() • class(date()) • class(Sys. Date()) • class(Sys. time()) • • • x <- "19: 18: 05" y <- strptime(x, "%H: %M: %S") y class(y) y$sec http: //www. endmemo. com/program/R/ 16

ØMatrisler • Matris tanımlama A <- matrix(c(3, 5, 7, 1, 9, 4), nrow=3, ncol=2,

ØMatrisler • Matris tanımlama A <- matrix(c(3, 5, 7, 1, 9, 4), nrow=3, ncol=2, byrow=TRUE) A • Matris satır ve sütun sayısı r. A <- nrow(A) r. A c. A <- ncol(A) c. A • Matirisin transposesi B <- t(A) B http: //www. endmemo. com/program/R/ 17

ØMatrisler • Matris çarpımı C <- A * A C • Matris toplamı C

ØMatrisler • Matris çarpımı C <- A * A C • Matris toplamı C <- A + A C http: //www. endmemo. com/program/R/ 18

ØMatrisler • Matris verilerini dosyadan okutmak için yandaki verileri sortmatrix. csv dosyasına yazınız. x

ØMatrisler • Matris verilerini dosyadan okutmak için yandaki verileri sortmatrix. csv dosyasına yazınız. x <- read. csv("sortmatrix. csv", header=T, sep=", "); , t 1, t 2, t 3, t 4, t 5, t 6, t 7, t 8 r 1, 1, 0, 0, 1, 0, 2 r 2, 1, 2, 5, 1, 2, 1 r 3, 0, 0, 9, 2, 1, 1, 0, 1 r 4, 0, 0, 2, 1, 2, 0, 0, 0 r 5, 0, 2, 15, 1, 1, 0, 0, 0 r 6, 2, 2, 3, 1, 1, 1, 0, 0 r 7, 2, 2, 3, 1, 1, 1, 0, 1 x <- x[order(x[, 4]), ]; x <- write. table(x, file="tp. txt", sep=", ") http: //www. endmemo. com/program/R/ 19

library(openair) setwd("D: /belgelerim/HUSEYIN") getwd() # RUZGAR Gulu mydata <- import("balikesir_saatlik_veri. csv", date = "Tarih",

library(openair) setwd("D: /belgelerim/HUSEYIN") getwd() # RUZGAR Gulu mydata <- import("balikesir_saatlik_veri. csv", date = "Tarih", sep=", ") polar. Plot(mydata, pollutant = 'SO 2', type = 'default', main="Balıkesir") balikesir_saatlik_veri. csv 20

# 2 Zaman Serisi TREND mydata <- import("balikesir_saatlik_veri. csv", date = "Tarih", sep=", ")

# 2 Zaman Serisi TREND mydata <- import("balikesir_saatlik_veri. csv", date = "Tarih", sep=", ") smooth. Trend(mydata, pollutant = "SO 2", deseason = TRUE, statistic = "percentile", percentile = c(25, 50, 75, 95), ylab = "ug/m 3") 21

#Boxplot mydata <- import("balikesir_saatlik_veri. csv", date="Tarih", sep=", ") Mydata<-mydata[, 2: 3] Boxplot(mydata, ylab=“ug/m 3”,

#Boxplot mydata <- import("balikesir_saatlik_veri. csv", date="Tarih", sep=", ") Mydata<-mydata[, 2: 3] Boxplot(mydata, ylab=“ug/m 3”, xlab=“” title(main=“balikesir” 22

#boxplot 2 boxplot(veri$PM 10, veri$PM 2. 5, veri$SO 2, veri$NOX, veri$CO, varwidth=TRUE, notch=TRUE, staplewex=0.

#boxplot 2 boxplot(veri$PM 10, veri$PM 2. 5, veri$SO 2, veri$NOX, veri$CO, varwidth=TRUE, notch=TRUE, staplewex=0. 5, names=c("PM 10", "PM 2. 5", "SO 2", "NOX", "CO"), main="A. BAHCELIEVLER", xlab="Kirleticiler", ylab="ug/m 3", y="log" , outcex=1. 0, outpch=18, outcol="red", boxcol="black", boxfill="lavenderblush 2", whisklty=10, boxwex=0. 7, whiskcol="black", cex. lab=1. 0, cex. axis=1. 0, staplelwd=2, staplecol="red", medcol="black") 23

24

24

#HİSTOGRAM mydata<-read. table(file=" balikesir_saatlik_veri. csv ", sep="; ", header=TRUE, row. names=NULL) hist(mydata$PM 10, main=“BALIKESIR

#HİSTOGRAM mydata<-read. table(file=" balikesir_saatlik_veri. csv ", sep="; ", header=TRUE, row. names=NULL) hist(mydata$PM 10, main=“BALIKESIR PM 10 YOGUNLUKDAGILIMI", col. main="RED" , xlab = "PM 10 (ug/m 3)", ylab = "DATA NUMBER", col="light blue") 25

26

26

#POLLUTIONROSE mydata <- import("balikesir_saatlik_veri. csv", date="Tarih", sep=", ", header=TRUE, row. names=NULL) pollution. Rose(mydata, pollutant="PM

#POLLUTIONROSE mydata <- import("balikesir_saatlik_veri. csv", date="Tarih", sep=", ", header=TRUE, row. names=NULL) pollution. Rose(mydata, pollutant="PM 10", type="default") 27

BALIKESIR-PM 10 28

BALIKESIR-PM 10 28

#sezonluk Pollutıon. Rose pollution. Rose(mydata, pollutant="PM 10", type="season", main="balikesir" ) 29

#sezonluk Pollutıon. Rose pollution. Rose(mydata, pollutant="PM 10", type="season", main="balikesir" ) 29

#Sezonluk rüzgargülü polar. Plot(mydata, pollutant="SO 2", type="season", main="balikesir") 30

#Sezonluk rüzgargülü polar. Plot(mydata, pollutant="SO 2", type="season", main="balikesir") 30

x <- import("balikesir_saatlik_veri. csv", date = "Tarih", sep=", ") smooth. Trend(x, pollutant = "SO

x <- import("balikesir_saatlik_veri. csv", date = "Tarih", sep=", ") smooth. Trend(x, pollutant = "SO 2", deseason = TRUE, statistic = "percentile", percentile = c(25, 50, 75, 95), ylab = "ug/m 3") time. Plot(x, pollutant = c("PM 10", "SO 2"), cols = c("blue", "orange"), lwd = c("1", "1"), group = FALSE) 31

time. Plot(x, pollutant = c("PM 10", "SO 2"), cols = c("blue", "orange"), lwd =

time. Plot(x, pollutant = c("PM 10", "SO 2"), cols = c("blue", "orange"), lwd = c("1", "1"), group = FALSE, smooth = TRUE, avg. time ="month") time. Variation(x , pollutant = c("PM 10", "SO 2")) time. Variation(x , pollutant = "SO 2", cols = "darkgreen") mydata <- import("balikesir_saatlik_veri. csv", date = "Tarih", sep=", ") scatter. Plot(mydata, x = "PM 10", y = "SO 2", spline = "TRUE") 32

#Sonuçları DOSYAYA YAZDIRMAK ICIN plot. new() #start a new plot png() dev. copy(png, "Balikesir_SO

#Sonuçları DOSYAYA YAZDIRMAK ICIN plot. new() #start a new plot png() dev. copy(png, "Balikesir_SO 2_ruzgar_gulu. png", width=4, height=4, units="in", res=300) mydata <- import("balikesir_saatlik_veri. csv", date = "Tarih", sep=", ") polar. Plot(mydata, pollutant = 'SO 2', type = 'default', main="Balıkesir") dev. off() 33

ØDöngüye örnek verir misiniz? • Belli satır veya satırların şartlar sağlanılıncaya kadar tekrarı for

ØDöngüye örnek verir misiniz? • Belli satır veya satırların şartlar sağlanılıncaya kadar tekrarı for (i in 1: 4) { print(i) } • {} içinin 20 defa tekrar yapılır. > for (i in 1: 4) + {print(i)} [1] 1 [1] 2 [1] 3 [1] 4 34

ØDöngüye örnek verir misiniz? # Ölçüm sonuçlarının değer 1 kutusuna atanması > deger 1

ØDöngüye örnek verir misiniz? # Ölçüm sonuçlarının değer 1 kutusuna atanması > deger 1 = c(0. 1, 0. 05, 0. 003, 0. 4, 0. 9) > deger 1 [1] 0. 100 0. 050 0. 003 0. 400 0. 900 # Deger 2 kutusuna 1’den 5’e kadar sayı atamak deger 2 = 1: 5 # Deger 1’in log’larını deger 2’ye atamak for(i in 1: length(deger 1)) { deger 2[i] = log 10(deger 1[i]) } > deger 2 [1] -1. 0000 -1. 30103000 -2. 52287875 -0. 39794001 0. 04575749 35

ØWhile Loop döngüsü • Belli satır veya satırların şartlar sağlanılıncaya kadar tekrarı while (stop

ØWhile Loop döngüsü • Belli satır veya satırların şartlar sağlanılıncaya kadar tekrarı while (stop != TRUE) { . . . code. . . } • stop = TRUE • Note: Eğer şartlar oluşmaz ise program kapatılıncaya kadar döngü devam eder. 36

Ø While Loop döngüye örnek verir misiniz? > x =1 > while(x < 5)

Ø While Loop döngüye örnek verir misiniz? > x =1 > while(x < 5) {x <-x+1; print(x); } [1] 2 [1] 3 [1] 4 [1] 5 > x =1 > while(x < 5) {x <- x+1; if (x == 3) break; print(x); } [1] 2 > x <- 1 > while(x < 5) {x <- x+1; if (x == 3) next; print(x); } [1] 2 [1] 4 [1] 5 37

ØFunctions • Bits of code that do one thing and (preferrably) do it well

ØFunctions • Bits of code that do one thing and (preferrably) do it well • Functions break up your code into more manageable and reusable parts • Defining (e. g. in a script): fun = function(arguments) { . . . code. . . } • Calling: party = fun(food, beer, folks) 38

ØA Simple Function fn 1 <- function(N) { for(i in as. numeric(1: N)) {

ØA Simple Function fn 1 <- function(N) { for(i in as. numeric(1: N)) { y <- i*i } } fn 2 <- function(N) { i = 1 while(i <= N) { y <- i*i i <- i + 1 } } system. time(fn 1(60000)) system. time(fn 2(60000)) 39

Student’s T-test 40

Student’s T-test 40

Comparing the Means of Two Groups • Sleep dataset in R is a comparison

Comparing the Means of Two Groups • Sleep dataset in R is a comparison of two students sleep habits 41

Doing a Student’s T-test t. test(sleep[1: 10, ’extra’], sleep[11: 20, ’extra’]) or t. test(extra

Doing a Student’s T-test t. test(sleep[1: 10, ’extra’], sleep[11: 20, ’extra’]) or t. test(extra ~ group, data = sleep) 42

Correlation 43

Correlation 43

Testing for a Correlation cor. test(c(1: 10), c(11: 20)) 44

Testing for a Correlation cor. test(c(1: 10), c(11: 20)) 44

Testing for a Correlation cor. test(c(1: 10), -c(11: 20)) 45

Testing for a Correlation cor. test(c(1: 10), -c(11: 20)) 45

Daha fazla bilgi ve örnekler • https: //www. rstudio. com/ • http: //tryr. codeschool.

Daha fazla bilgi ve örnekler • https: //www. rstudio. com/ • http: //tryr. codeschool. com/levels/1/challenges/1 • https: //metvurst. wordpress. com/ 46