pengenalan bahasa r
DESCRIPTION
Pengenalan Bahasa R. I G.A. Anom Yudistira E-mail: [email protected]. Websites. SimpleR www.math.csi.cuny.edu/Statistics/R/simpleR/Simple package, data, dan dokumen R www.r-project.org software; cran.r-project.org dokumen; packages RNews. Bahasa R: Selayang Pandang. - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/2.jpg)
Websites
• SimpleR www.math.csi.cuny.edu/Statistics/R/simpleR/Simple
– package, data, dan dokumen • R www.r-project.org
– software; cran.r-project.org– dokumen;– packages – RNews.
![Page 3: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/3.jpg)
Bahasa R: Selayang Pandang
• Open source dan open development.• Merupakan sofware yang dirancangan dan
penyebarannya bersifat portable, extensible, dan scalable.
• Interoperability dengan bahasa lain: C, XML, FORTRAN.• Disediakan untuk berbagai metode statistik dan numerik.• Memiliki tools graphics dan visualisasi dengan kualitas
tinggi.• Memiliki user interface yang efektif, dan extensible • Didukung dengan creation, testing, dan distribusi
software dan data modul: packages. gratis
![Page 4: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/4.jpg)
Pemrograman Berorientasi Objek (OOP)
Class • abstraksi software
mengenai objek dalam dunia nyata.
• refleksi dari bagaimana kita memandang objek dan informasi apa yang dikandungnya.
Method• fungsi melakukan aksi
terhadap data (objects). • aksi fungsi tergantung
pada class dari argumen-argumennya.
• sebuah fungsi generic dapat segera digunakan.
![Page 5: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/5.jpg)
R antarmuka pengguna
• Pemrosesan baris perintah (command line processing)Klik R mulai> q() keluar; quit
• Graphik windows> X11() atau > window()> postscript()> dev.off()
• File path terhadap working directory> getwd()> setwd()
• meload a package library dengan library()• GUIs, tcltk
![Page 6: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/6.jpg)
Memperoleh Bantuan (Help)o Detail tentang perintah spesifik yang namanya anda ketahui:
> ? t.test > help(t.test)
o Teladan penggunaan:> demo(graphics)> example(mean) mean> x <- c(0:10, 50) mean> xm <- mean(x) mean> c(xm, mean(x, trim = 0.1)) [1] 8.75 5.50
![Page 7: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/7.jpg)
o Mesin pencari HTML membantu anda mencari topik tertentu:
> help.search(“mean”)
o Mencari perintah yang mengandung ekspresi atau nama objek tertentu:
> apropos("var") [1] "var.na" ".__M__varLabels:Biobase" [3] "varLabels" "var.test" [5] "varimax" "all.vars" [7] "var" "variable.names" [9] "variable.names.default" "variable.names.lm"
Memperoleh Bantuan (Help)
![Page 8: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/8.jpg)
Memperoleh Bantuan (Help)
o Melihat code suatu fungsi, ketik nama fungsi tanpa parentheses/() or arguments:
> plot
![Page 9: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/9.jpg)
R sebagai Calculator
> log2(32)
[1] 5
> print(sqrt(2))
[1] 1.414214
> pi
[1] 3.141593
> seq(0, 5, length=6)
[1] 0 1 2 3 4 5
> 1+1:10
[1] 2 3 4 5 6 7 8 9 10 11
![Page 10: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/10.jpg)
R sebagai alat pembuat Graphics
> plot(sin(seq(0, 2*pi, length=100)))
0 20 40 60 80 100
-1.0
-0.5
0.0
0.5
1.0
Index
sin
(se
q(0
, 2 *
pi,
len
gth
= 1
00
))
![Page 11: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/11.jpg)
> a <- 49> sqrt(a)[1] 7
> b <- "Saya sedang belajar R"> sub("Saya","Kamu",b)[1] "Kamu sedang belajar R"
> c <- (1+1==3)> c[1] FALSE> is.character(c)[1] "FALSE"
numeric
character string
logical
Variabel
![Page 12: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/12.jpg)
Missing ValuesPeubah setiap tipe data (numeric, character, logical) dapat mempunyai nilai NA: not available. o NA tidak sama dengan 0o NA tidak sama dengan “”o NA tidak sama dengan FALSEo NA tidak sama dengan NULL
Opersi-operasi yang melibatkan NA bisa saja menghasilkan NA atau tidak:
> NA==1[1] NA> 1+NA[1] NA> max(c(NA, 4, 7))[1] NA> max(c(NA, 4, 7), na.rm=T)[1] 7
> NA | TRUE[1] TRUE> NA & TRUE[1] NA
![Page 13: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/13.jpg)
Vektorvektor: suatu kumpulan data terurut dengan tipe sama> a <- c(1,2,3)> a*2[1] 2 4 6
Teladan: Nilai UTS statistik dan probabilitas kelas 02PBT adalah sebuah vektor numeric
Pada R, sebuah vektor bisa saja hanya memilki sebuah nilai tunggal.
Tipe-tipe vektor lain: character strings, logical
![Page 14: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/14.jpg)
Matriks dan Array
matrix: table data berbentuk segi empat dengan tipe sama
Teladan: > mat <- matrix(1:10, nrow=5, ncol=2)
array: 3-,4-,.. matrix dimensional
Teladan: nilai-nilai foreground and background merah dan hijau untuk 20000 spots pada 120 arrays adalah array 4 x 20000 x 120 (3D).
![Page 15: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/15.jpg)
Himpunan (list)
list: kumpulan data terurut dari sembarang tipe.
Teladan:> doe <- list(name="john",age=28,married=F)> doe$name[1] "john“> doe$age[1] 28> doe[[3]][1] FALSE
Elemen-elemen vektor diakses dengan nilai indexnya (integer) sedangkan elemen-elemen list oleh $nama (suatu character string).
![Page 16: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/16.jpg)
Data Frame
data frame: tabel segiempat dengan baris-baris dan kolom-kolom; data didalam setiap kolom harus bertipe sama (mis. angka, text, logikal), tetapi kolom berbeda bisa saja bertipe tidak sama.
Teladan:> a <-data.frame(localization,tumorsize,progress,row.names=patients)> a localization tumorsize progressXX348 proximal 6.3 FALSEXX234 distal 8.0 TRUEXX987 proximal 10.0 FALSE
![Page 17: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/17.jpg)
Apa tipe data saya?
class Class from which object inherits(vector, matrix, function, logical, list, … )
mode Numeric, character, logical, …storage.mode
typeofMode used by R to store object (double, integer, character, logical, …)
is.function Logical (TRUE if function)is.na Logical (TRUE if missing)names Names associated with objectdimnames Names for each dim of arrayattributes Names, class, etc.
![Page 18: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/18.jpg)
SubsettingElemen-elemen individual sebuah vektor, matriks, array or data frame diakses dengan “[ ]” dengan menentukan nilai indeksnya, atau namanya
> a localization tumorsize progressXX348 proximal 6.3 0XX234 distal 8.0 1XX987 proximal 10.0 0
> a[3, 2][1] 10
> a["XX987", "tumorsize"][1] 10
> a["XX987",] localization tumorsize progressXX987 proximal 10 0
![Page 19: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/19.jpg)
>a localization tumorsize progressXX348 proximal 6.3 0XX234 distal 8.0 1XX987 proximal 10.0 0
> a[c(1,3),] localization tumorsize progressXX348 proximal 6.3 0XX987 proximal 10.0 0
> a[-c(1,2),]localization tumorsize progressXX987 proximal 10.0 0
> a[c(T,F,T),] localization tumorsize progressXX348 proximal 6.3 0XX987 proximal 10.0 0
> a$localization[1] "proximal" "distal" "proximal"
> a$localization=="proximal"[1] TRUE FALSE TRUE
> a[ a$localization=="proximal", ] localization tumorsize progressXX348 proximal 6.3 0XX987 proximal 10.0 0
subset baris-baris dengan vektor indeks
subset baris-baris dg. Vektor logikal
subset kolom-kolom
Hasil pembandingan dalam vektor logikal
subset baris-baris yang dipilih
Teladan:
![Page 20: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/20.jpg)
Fungsi dan Operator
Fungsi melakukan sesuatu terhadap data“Input”: argumen-argumen fungsi (0,1,2,…)“Output”: hasil fungsi
Teladan:add <- function(a,b) {
result <- a+b return(result) }
Operator: Penulisan cepat untuk fungsi-fungsi yang sering digunakan dengan satu atau dua argument.
![Page 21: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/21.jpg)
Operator-operator yang sering digunakan<- Assign
+ Sum
- Difference
* Multiplication
/ Division
^ Exponent
%% Mod
%*% Dot product
%/% Integer division
%in% Subset
| Or
& And
< Less
> Greater
<= Less or =
>= Greater or =
! Not
!= Not equal
== Is equal
![Page 22: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/22.jpg)
Fungsi-fungsi yang sering digunakan
c Concatenate
cbind,rbind
Concatenate vectors
min Minimum
max Maximum
length # values
dim # rows, cols
floor Max integer in
which TRUE indices
table Counts
summary Generic stats
Sort, order, rank
Sort, order, rank a vector
print Show value
cat Print as char
paste c() as char
round Round
apply Repeat over rows, cols
![Page 23: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/23.jpg)
Fungsi-fungsi Statistik
rnorm, dnorm, pnorm, qnorm
Normal distribution random sample, density, cdf and quantiles
lm, glm, anova Model fitting
loess, lowess Smooth curve fitting
sample Resampling (bootstrap, permutation)
.Random.seed Random number generation
mean, median Location statistics
var, cor, cov, mad, range
Scale statistics
svd, qr, chol, eigen
Linear algebra
![Page 24: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/24.jpg)
Fungsi-fungsi Grafik
plot Generic plot eg: scatter
points Add points
lines, abline Add lines
text, mtext Add text
legend Add a legend
axis Add axes
box Add box around all axes
par Plotting parameters (lots!)
colors, palette Use colors
![Page 25: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/25.jpg)
Percabangan
if (logical expression) { statements} else { alternative statements}
else branch is optional{ } are optional with one statement
ifelse (logical expression, yes statement, no statement)
![Page 26: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/26.jpg)
Loops
Bila perintah yang sama diperlukan beberapa kali; untuk semua elemen dalam sebuah list; semua kolom dalam sebuah array; dsb.
for(i in 1:10) { print(i*i)}
i<-1while(i<=10) { print(i*i) i<-i+sqrt(i)}
Lihat juga: repeat, break, next
![Page 27: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/27.jpg)
Expressi RegularPerintah untuk pencocokan text dan replacement yang juga tersedia dalam bentuk yang sama dengan kebanyakan bahasa pemrograman (Perl, Unix shells, Java)
> a <- c("CENP-F","Ly-9", "MLN50", "ZNF191", "CLH-17")
> grep("L", a)[1] 2 3 5
> grep("L", a, value=T)[1] "Ly-9" "MLN50" "CLH-17"
> grep("^L", a, value=T)[1] "Ly-9"
> grep("[0-9]", a, value=T)[1] "Ly-9" "MLN50" "ZNF191" "CLH-17"
> gsub("[0-9]", "X", a)[1] "CENP-F" "Ly-X" "MLNXX" "ZNFXXX" "CLH-XX"
![Page 28: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/28.jpg)
Menyimpan Data
Setiap objek R dapat disimpan dan dipanggil kembali dari sebuah file dengan menggunakan perintah:“save” and “load”.
Menggunkan standard XDR (external data representation) dari Sun Microsystems dan mempunyai keseuaian terhadap MS-Windows, Unix, Mac.
> save(x, file=“x.Rdata”)> load(“x.Rdata”)
![Page 29: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/29.jpg)
Importing dan Exporting Data
Ada banyak cara untuk mengambil dan mengirim data.
Kebanyakan program (seperti Excel), disimpan dalam bentuk tabel segiempat berbentuk tab-delimited text files.
> x <- read.delim(“filename.txt”)
Lihat juga: read.table, read.csv, scan
> write.table(x, file=“x.txt”, sep=“\t”)
Lihat juga: write.matrix, write
![Page 30: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/30.jpg)
Importing dan Exporting Data
• Mengambil data dari format minitab, SAS, STATA dapat dilakukan dengan menggunakan package foreign
> library(foreign)
> read.mtp(“file.mtp”) # format minitab
![Page 31: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/31.jpg)
Simulasi
• Teorema Limit Pusat> n<-10; p<-.25; S<-rbinom(100,n,p)
> X<-(S-n*p)/sqrt(n*p*(1-p)) # ada 100 angka acak
> hist(X,prob=TRUE)
> xval=seq(-3,3,.01)
> points(xval,dnorm(xval),type="l")Histogram of X
X
De
nsity
-2 -1 0 1 2 3
0.0
0.2
0.4
0.6
![Page 32: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/32.jpg)
Simulasi
• 200 sampel diambil dari populasi N(10,5) masing-masing berukutan 100
> samp<-numeric(0)
> mu<-10;sigma<-5
> for (i in 1:200) {
+ x<-rnorm(100,mu,sigma) # bangkikan 100 data
+ samp[i]<-(mean(x)-mu)/(sigma/sqrt(100))
+ }
> hist(samp,prob=T,col=gray(0.85))
> xval=seq(-3,3,.01)
> points(xval,dnorm(xval),type="l")
Histogram of samp
samp
De
nsity
-4 -3 -2 -1 0 1 2 3
0.0
0.1
0.2
0.3
![Page 33: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/33.jpg)
QQ-Plot
• Plot quantil-quantil adalah plot yang lebih baik digunakan untuk memutuskan apakah suatu data acak teraproksimasi normal
> par(mfrow=c(1,4))> x<-rnorm(100);qqnorm(x,main="normal(0,1)"); qqline(x)> x<-rnorm(100,10,15);qqnorm(x,main="normal(10,15)")> qqline(x)> x<-rexp(100,1/10);qqnorm(x,main="exponensial mu=10")> qqline(x)> x<-runif(100);qqnorm(x,main="uniform(0,1)"); qqline(x)
-2 0 2
-2
-1
01
2
normal(0,1)
Theoretical Quantiles
Sam
ple
Quantile
s
-2 0 2
-20
-10
010
20
30
40
normal(10,15)
Theoretical Quantiles
Sam
ple
Quantile
s
-2 0 2
010
20
30
40
exponensial mu=10
Theoretical Quantiles
Sam
ple
Quantile
s
-2 0 2
0.0
0.2
0.4
0.6
0.8
1.0
uniform(0,1)
Theoretical Quantiles
Sam
ple
Quantile
s
![Page 34: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/34.jpg)
Statistik Inferensia
> library(Devore6) # panggil package Devore6
> xmp07.06 # lihat datanya> names(xmp07.06) # apa saja variabelnya
> with(xmp07.06,mean(Voltage)+
+ c(1,-1)*qnorm(0.025)*
+ sd(Voltage)/sqrt(length(Voltage)))
[1] 53.22859 56.18807
![Page 35: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/35.jpg)
Statistik Inferensia
• Uji t> with(xmp07.06,t.test(Voltage))
One Sample t-test
data: Voltage
t = 72.4631, df = 47, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
53.18950 56.22716
sample estimates:
mean of x
54.70833
![Page 36: Pengenalan Bahasa R](https://reader036.vdocuments.net/reader036/viewer/2022081512/56814428550346895db0c38f/html5/thumbnails/36.jpg)
Statistik Inferensia• Selang kepercayaan untuk ragam> with(xmp07.15,(length(voltage)-1)*+ var(voltage)/qchisq(c(0.975,0.025),+ df=length(voltage)-1))[1] 76171.31 318079.76> with(xmp08.08,t.test(DCP,mu=30,alt="less")) One Sample t-testdata: DCP t = -0.7282, df = 51, p-value = 0.2349alternative hypothesis: true mean is less than 30 95 percent confidence interval: -Inf 31.61088 sample estimates:mean of x 28.76154