Prinsip Dasar R

Session Info R

sessionInfo()
## R version 3.1.2 (2014-10-31)
## Platform: i386-w64-mingw32/i386 (32-bit)
## 
## locale:
## [1] LC_COLLATE=English_United States.1252 
## [2] LC_CTYPE=English_United States.1252   
## [3] LC_MONETARY=English_United States.1252
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.1252    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
##  [1] digest_0.6.9    evaluate_0.9    htmltools_0.3.5 knitr_1.12.3   
##  [5] magrittr_1.5    Rcpp_0.12.4     rmarkdown_0.9.6 stringi_1.0-1  
##  [9] stringr_1.0.0   tools_3.1.2     yaml_2.1.13

Active Direktori

Set working Direktori pada komputer

setwd("D:/workshopban")

Type Variabel

Tipe variabel dalam R terdiri atas numerik, Karakter dan Logika

A1=5
A2="I Love You Full"
A3= LETTERS[1:5]
A4= (1+2==4)
str(A1)
##  num 5
A1
## [1] 5
A2
## [1] "I Love You Full"
A3
## [1] "A" "B" "C" "D" "E"
A4
## [1] FALSE

Vektor

=’ sebagai operator penugasan dalam R

x=c(1,2,2,2,2,2,2)
x1=seq(10)
x2=seq(0,1,by=0.1) 
x3=rep(1,3) 
x4=c(rep(1,3),rep(2,2),rep(-1,4)) 
x5=rep("Small",3)  

Matriks

Array numerik yang terdiri atas baris dan kolom Cara termudah membangun sebuah matrix adalah dengan fungsi cbind()(column bind)

x=c(2,4)
y=c(6,8)
m1=cbind(x,y)
m1
##      x y
## [1,] 2 6
## [2,] 4 8
m2=matrix(c(10,20,30,40),ncol=2)
m2
##      [,1] [,2]
## [1,]   10   30
## [2,]   20   40
m3=matrix(c(1,3,2,5,-1,2,2,3,9),ncol=3,byrow=T) 
m3
##      [,1] [,2] [,3]
## [1,]    1    3    2
## [2,]    5   -1    2
## [3,]    2    3    9

Operasi Matriks

t(m3)     # transpose dari m3 
##      [,1] [,2] [,3]
## [1,]    1    5    2
## [2,]    3   -1    3
## [3,]    2    2    9
m3[2,3]   #element dari m3 pada baris 2, kolom 3 
## [1] 2
m3[2,]    #baris 2 
## [1]  5 -1  2
m3[,3]    #kolom 3 
## [1] 2 2 9
m3[-1,]   #submatrix dari m3 tanpa baris pertama 
##      [,1] [,2] [,3]
## [1,]    5   -1    2
## [2,]    2    3    9
m3[,-1]   #submatrix dari m3 tanpa kolom pertama 
##      [,1] [,2]
## [1,]    3    2
## [2,]   -1    2
## [3,]    3    9
m3[-1,-1] #submatrix dari m3 tanpa kolom pertama dan baris pertama
##      [,1] [,2]
## [1,]   -1    2
## [2,]    3    9
2*m1      #erkalian scalar 
##      x  y
## [1,] 4 12
## [2,] 8 16
m1+m2     #penambahan matrix addition
##       x  y
## [1,] 12 36
## [2,] 24 48
m1 %*% m2   # perkalian component matrix 
##      [,1] [,2]
## [1,]  140  300
## [2,]  200  440
solve(m1)   #inverse matrix  
##   [,1]  [,2]
## x -1.0  0.75
## y  0.5 -0.25
diag(3)     #membangun k by k identity matrix 
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1
diag(c(2,3,3)) #diagonal matrices 
##      [,1] [,2] [,3]
## [1,]    2    0    0
## [2,]    0    3    0
## [3,]    0    0    3
eigen(m2) #mencari eigen 
## $values
## [1] 53.722813 -3.722813
## 
## $vectors
##            [,1]       [,2]
## [1,] -0.5657675 -0.9093767
## [2,] -0.8245648  0.4159736

Data Frame dalam R

Nama<-c("surip","zul","budi","nordin")
Usia<-c(23,34,44,12)
Kelas<-c("A","B","C","D")
Domisili<-c("bdg","cjr","jkt","sby")
Siswa<-data.frame(Nama,Usia,Kelas,Domisili)
Siswa
##     Nama Usia Kelas Domisili
## 1  surip   23     A      bdg
## 2    zul   34     B      cjr
## 3   budi   44     C      jkt
## 4 nordin   12     D      sby

Fungsi Dalam Datframe

names(Siswa)
## [1] "Nama"     "Usia"     "Kelas"    "Domisili"
Siswa[,1]
## [1] surip  zul    budi   nordin
## Levels: budi nordin surip zul
Siswa$Usia 
## [1] 23 34 44 12
mean(Siswa$Usia)
## [1] 28.25
min(Siswa$Usia)
## [1] 12
table(Siswa$Kelas) 
## 
## A B C D 
## 1 1 1 1
table(Siswa$Kelas,Siswa$Domisili) 
##    
##     bdg cjr jkt sby
##   A   1   0   0   0
##   B   0   1   0   0
##   C   0   0   1   0
##   D   0   0   0   1
i<-order(Siswa$Usia);i
## [1] 4 1 2 3
Siswa[i,] 
##     Nama Usia Kelas Domisili
## 4 nordin   12     D      sby
## 1  surip   23     A      bdg
## 2    zul   34     B      cjr
## 3   budi   44     C      jkt
#edit(data.frame(Siswa)) 

Input & Output Data

Membaca CSV file

 setwd("D:/workshopban")
 Dataku = read.csv("data_survey.CSV", header=T, sep=";")

Mengekspor dat file

 write.table(Dataku[,1], file="data1.dat",sep=",")

Grafik

Line Graph

# Membuat vector 
      cars <- c(1, 3, 6, 4, 9) 
# Membuat grafik line dengan titik berwarna biru 
      plot(cars, type="o", col="blue") 
# Membuat judul grafik 
      title(main="Autos", col.main="red", font.main=4) 

Multi Line Graph

# Membuat vector 
      cars <- c(1, 3, 6, 4, 9) 
# Membuat grafik line dengan titik berwarna biru 
      plot(cars, type="o", col="blue") 
# Membuat judul grafik 
      title(main="Autos", col.main="red", font.main=4) 

# Mendefinisikan vector ke 2
    trucks <- c(2, 5, 4, 5, 12) 
# Membuat grafik dengan sumbu y memiliki range antara 0 to 12 
    plot(cars, type="o", col="blue", ylim=c(0,12))
 # Membuat grafik trucks dengan garis putus2 berwarna merah  
    lines(trucks, type="o", pch=22, lty=2, col="red") 
# Membuat Judul Grafik 
    title(main="Autos", col.main="red", font.main=4)
# Membuat Legend
     legend("topleft", c("cars","trucks"), cex=0.8, col=c("blue","red"), pch=21:22, lty=1:2);  

Bar Chart

# Define the cars vector with 5 values 
cars <- c(1, 3, 6, 4, 9) 
# Graph cars
    barplot(cars)

# Graph autos with adjacent bars using rainbow colors 
    barplot(cars, main="Autos", ylab= "Total",    beside=TRUE, col=rainbow(5)) 

Histogram

# Membuat vector suvs 
   suvs <- c(4,4,6,6,16) 
# Membuat Histogram untuk suvs 
   hist(suvs) 

# Membuat Histogram dengan warna biru dan sumbu y memiliki range antara 0-2
   hist(suvs, col="lightblue", ylim=c(0,2)) 

Pie Chart

# Membuat vector cars
   cars <- c(1, 3, 6, 4, 9) 
# Membuat pie chart dari cars
   pie(cars) 

#Membuat pie chart dengan label
    pie(cars, main="Cars", col=rainbow(length(cars)), labels=c("Mon","Tue","Wed","Thu","Fri"))

# Membuat persentasi untuk masing2 kategori
     car_labels <-round(cars/sum(cars) * 100, 1) 
# Meletakan label '%' pada pie chart 
     car_labels <- paste(car_labels, "%", sep="") 
# Membuat pie dengan warna tertentu
    pie(cars, main="Cars", col=rainbow(length(cars)),  labels=car_labels, cex=0.8) 

Tabel

caff.marital <- matrix(c(652,1537,598,242,36,46,38,21,218,327,106,67),nrow=3,byrow=T)
  caff.marital
##      [,1] [,2] [,3] [,4]
## [1,]  652 1537  598  242
## [2,]   36   46   38   21
## [3,]  218  327  106   67
#Penamaan kolom dari sebuah tabel
  colnames(caff.marital) <- c("0","1-150","151-300",">300")
#Penamaan baris dari sebuah tabel

   rownames(caff.marital) <-   c("Married","Prev.married","Single")
   caff.marital
##                0 1-150 151-300 >300
## Married      652  1537     598  242
## Prev.married  36    46      38   21
## Single       218   327     106   67
#Membuat transpose dari sebuah tabel

   t(caff.marital)
##         Married Prev.married Single
## 0           652           36    218
## 1-150      1537           46    327
## 151-300     598           38    106
## >300        242           21     67
#Membuat marginal tabel
   margin.table(caff.marital,1)
##      Married Prev.married       Single 
##         3029          141          718
   margin.table(caff.marital,2)
##       0   1-150 151-300    >300 
##     906    1910     742     330
#Membuat proporsi tabel
   prop.table(caff.marital,1)
##                      0     1-150   151-300       >300
## Married      0.2152526 0.5074282 0.1974249 0.07989435
## Prev.married 0.2553191 0.3262411 0.2695035 0.14893617
## Single       0.3036212 0.4554318 0.1476323 0.09331476
   prop.table(caff.marital,2)
##                      0      1-150    151-300       >300
## Married      0.7196468 0.80471204 0.80592992 0.73333333
## Prev.married 0.0397351 0.02408377 0.05121294 0.06363636
## Single       0.2406181 0.17120419 0.14285714 0.20303030
 #Membuat grafik berdasarkan tabel
     total.caff <- margin.table(caff.marital,2)
    barplot(total.caff, col="white")

    barplot(total.caff, col="red")

    barplot(total.caff, col=heat.colors(4))

    barplot(total.caff, col=rainbow(4))

    barplot(caff.marital, col=rainbow(4))

    barplot(caff.marital,col=rainbow(4),beside=T)       

Membuat Vector

X=rep(0,3)
X
## [1] 0 0 0
for (I in 1:3) {      
  print(I)
  }
## [1] 1
## [1] 2
## [1] 3