R merupakan bahasa pemprograman yang digunakan dalam analisis dan manipulasi data statistika (pemodelan statistika). Software ini pertama kali dikembangkan oleh Ross Ihaka dan Robert Gentlement di University of Auckland New Zealand, R merupakan akronim dari nama depan kedua pembuatnya. Munculnya R terinspirasi oleh bahasa statistika dengan nama S (statistical language S). Bahasa statistika S diciptakan oleh John Chambers dan rekan, di Bell Labs atau AT&T Bell Laboratories. Hal yang membedakan antara keduanya adalah R merupakan sistem komputasi yang bersifat gratis.
Berbeda dengan bahasa pemrograman pada umumnya, jika bahasa pemrograman yang lain menggunakan tanda “=” sebagai operator assigment, di R yang paling utama digunakan adalah operator panah kiri (<-), perhatikan contoh berikut:
data1 <- 1
data2 = 2
data1
## [1] 1
data2
## [1] 2
R memiliki karakteristik yang berbeda dengan bahasa pemrograman lain seperti C++,python, dll. R memiliki aturan/sintaks yang berbeda dengan bahasa pemrograman yang lain yang membuatnya memiliki ciri khas tersendiri dibanding bahasa pemrograman yang lain. Salah satu ciri R adalah bahasanya bersifat case sensitif. maksudnya adalah dalam proses input R huruf besar dan kecil sangat diperhatikan. Sebagai contoh perbedaan antara objek Z dan z pada sintaks berikut:
Z <- "Arif"
z <- "arif"
Z==z
## [1] FALSE
R memiliki berbagai fleksibilitas dalam memberikan nama variabel, namun demikian beberapa aturan penamaan variabel yang perlu diketahui adalah sebagai berikut:
Package R merupakan koleksi dari fungsi R yang mengandung kode dan contoh sampel data. Tersimpan di direktori “library” di program R. Pada program bawaannya telah terinstall beberapa package. Package yang lain ditambahkan sesuai dengan kebutuhan analisis pengguna. Untuk menginstall package dapat dilakukan dengan dua cara yaitu menggunakan fungsi yang sudah disediakan pada interface RGui atau RStudio atau dengan cara mengetik sintax install(“nama_package)” pada console. Seluruh package tersimpan di server yang dapat diakses secara online dan proses intallasi hanya dapat dilakukan jika terdapat jaringan internet.
RStudio merupakan salah satu bentuk frontend R yang cukup populer dan nyaman digunakan. Selain nyaman digunakan, RStudio memungkinkan kita melakukan penulisan laporan menggunakan Rmarkdown atau RNotebook serta membuat berbagai bentuk project seperti shyni, dll. Pada R studio juga memungkinkan kita mengatur working directory tanpa perlu mengetikkan sintaks pada Commander, yang diperlukan hanya memilihnya di menu RStudio. Selain itu, kita juga dapat meng-import file berisikan data tanpa perlu mengetikkan pada Commander dengan cara memilih pada menu Environment. (Mohammad Rosidi)
R merupakan sebuah paket dan sekaligus bahasa pemrograman yang dapat digunakan secara interaktif sehingga hasil perhitungan segera dapat dilihat, tetapi apabila perhitungannya kompleks maka perintah-perintah R ditulis lebih dahulu dalam text editor, kemudian dipanggil dengan fungsi source. Berikut beberapa contoh dasar penggunaan objek di R.
Untuk membuat vektor digunakan bantuan fungsi c(). Vector dapat berisi tipe data skalar seperti number, character atau logical. Misalkan kita ingin membuat vektor a dengan elemen nilai 2,4,7,dan 3 maka kita bisa menuliskan sintax a <- c(2,4,7,3) di source atau console. apabila menulis sintax di source maka kita harus memanggil variabel a untuk menampilkan nilai vektor tersebut. selain menggunakan operator “<-” kita juga bisa menggunakan assign() seperti contoh berikut:
a <- c(2,4,7,3)
a
## [1] 2 4 7 3
assign("b", c(2,4,7,3))
b
## [1] 2 4 7 3
untuk membuat baris bilangan dalam R kita bisa menggunakan fungsi seq(), fungsi ini dapat digunakan untuk membuat vektor berurutan dan dengan increment tertentu. Berikut beberapa contoh aplikatif dari seq():
c <- seq(1,10)
c
## [1] 1 2 3 4 5 6 7 8 9 10
d <- seq(1,10, by=0.5)
d
## [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0
## [16] 8.5 9.0 9.5 10.0
e <- seq(1,10,length.out = 12)
e
## [1] 1.000000 1.818182 2.636364 3.454545 4.272727 5.090909 5.909091
## [8] 6.727273 7.545455 8.363636 9.181818 10.000000
Untuk membuat bilangan berulang di R kita bisa mengggunakan fungsi rep(), sintax ini dapat digunakan untuk membuat sebuah vektor dengan mengulang-ulang nilai yang diinginkan sebanyak yang dibutuhkan. Berikut beberapa contoh penggunaan rep():
f1 <- replicate(5,3) # cara 1
f2 <- rep(3,5) # cara 2
f1
## [1] 3 3 3 3 3
f2
## [1] 3 3 3 3 3
g <- rep(1:3,c(2,0,4)) # angka berurutan
g
## [1] 1 1 3 3 3 3
g1 <- rep(c(3,5,12),c(4,2,5)) # angka acak
g1
## [1] 3 3 3 3 5 5 12 12 12 12 12
h <- rep(1:5,length.out=8) # cara 1
h1 <- rep_len(1:5,8) # cara 2
h
## [1] 1 2 3 4 5 1 2 3
h1
## [1] 1 2 3 4 5 1 2 3
i <- rep(1:3,3)
i
## [1] 1 2 3 1 2 3 1 2 3
j <- rep(1:7,1:7)
j
## [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 7
k <- rep(1:6, rep(3,6)) # cara 1
k1 <- rep(1:6, each=3) # cara 2
k
## [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6
k1
## [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6
Berikut beberapa contoh dasar pada penggunaan fungsi paste() ketika ingin membuat vektor berpola:
l<-paste("A",1:10,sep="") # cara 1
l1 <- paste0("A",1:10) # cara 2
l
## [1] "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "A10"
l1
## [1] "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "A10"
m<-paste("A",1:10,sep="-")
m1<-paste0("A",k) # menggunakan elemen vektor k
m
## [1] "A-1" "A-2" "A-3" "A-4" "A-5" "A-6" "A-7" "A-8" "A-9" "A-10"
m1
## [1] "A1" "A1" "A1" "A2" "A2" "A2" "A3" "A3" "A3" "A4" "A4" "A4" "A5" "A5" "A5"
## [16] "A6" "A6" "A6"
Berikut beberapa contoh sintax yang bisa digunakan untuk mengakses elemen pada vektor tertentu.
m1[3] # menampilkan elemen ke-3 vektor m1
## [1] "A1"
m1[10:15] # menampilkan elemen ke-10 sampai elemen ke-15 vektor m1
## [1] "A4" "A4" "A4" "A5" "A5" "A5"
m1[c(4,7,9)] # menampilkan elemen ke-4,7,9 vektor m1
## [1] "A2" "A3" "A3"
m1[-c(1:2)] # menghapus elemen ke-1 dan ke-2 vektor m1
## [1] "A1" "A2" "A2" "A2" "A3" "A3" "A3" "A4" "A4" "A4" "A5" "A5" "A5" "A6" "A6"
## [16] "A6"
length(m1) # menampilkan jumlah elemen pada vektor m1
## [1] 18
Tentukan output syntax program berikut: c(“la”,“ye”)[rep(c(1,2,2,1),times=4)] c(“la”,“ye”)[rep(rep(1:2, each=3),2)]
c("la","ye")[rep(c(1,2,2,1),times=4)]
## [1] "la" "ye" "ye" "la" "la" "ye" "ye" "la" "la" "ye" "ye" "la" "la" "ye" "ye"
## [16] "la"
c("la","ye")[rep(rep(1:2, each=3),2)]
## [1] "la" "la" "la" "ye" "ye" "ye" "la" "la" "la" "ye" "ye" "ye"
Buatlah syntax agar dihasilkan output vektor sebagai berikut: X1 Y2 X3 Y4 X5 Y6 X7 Y8 X9 Y10 1 4 7 10 13 16 19 22 25 28
nilai <- seq(1,28, by=3)
names(nilai) <- c("X1", "Y2","X3","Y4","X5","Y6","X7","Y8","X9","Y10")
nilai
## X1 Y2 X3 Y4 X5 Y6 X7 Y8 X9 Y10
## 1 4 7 10 13 16 19 22 25 28
Matriks pada dasarnya seperti Excel sheet yang berisi banyak baris dan kolom (kumpulan bebrapa vektor). Matriks digunakan untuk menggabungkan vektor dengan tipe yang sama, yang bisa berupa numerik, karakter, atau logis. Matriks digunakan untuk menyimpan tabel data dalam R. Baris-baris matriks pada umumnya adalah individu / pengamatan dan kolom adalah variabel. Untuk membuat sebuah matrix di R, kita bisa menggunakan fungsi matrix(). ### Contoh Matrix Misalnya kita ingin membuat suatu matriks dengan nama “mat”, jumlah baris sebanyak 2, jumlah kolom sebanyak 2, dan elemen-elemen pada matriks y adalah 3, 3, 2, dan 1, maka sintax nya adalah:
mat <- matrix(c(3,3,2,1), nrow=2, ncol=2)
mat
## [,1] [,2]
## [1,] 3 2
## [2,] 3 1
Berikut beberapa contoh lain yang bisa digunakan ketika ingin membuat matrix di R:
b0 <- 1:12
b1 <- matrix(b0,4,3)
b1
## [,1] [,2] [,3]
## [1,] 1 5 9
## [2,] 2 6 10
## [3,] 3 7 11
## [4,] 4 8 12
b2 <- matrix(b0,3,4,byrow = T)
b2
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
Berikut cara mengubah objek vektor b0 menjadi matrix b4 dengan jumlah baris 6 dan jumlah kolom 2:
b4 <- b0
dim(b4) <- c(6,2)
b4
## [,1] [,2]
## [1,] 1 7
## [2,] 2 8
## [3,] 3 9
## [4,] 4 10
## [5,] 5 11
## [6,] 6 12
Ketika ingin menggabung baris atau kolom pada objek matrix, kita bisa menggunakan fungsi “rbind()” atau “cbind()” sebagaimana contoh berikut, b8 adalah matrix orde 4x2 yang merupakan gabungan matrix b5 dan b7 dengan orde 2x2 (digabungkan berdasarkan baris), sedangkan b9 adalah matrix orde 2x6 yang merupakan gabungan matrix b7, b6 dan b5 dengan orde 2x2 (digabungkan berdasarkan kolom) :
b5 <-matrix(2:5,2) # matrix dengan baris 2 dan kolom 2
b6 <-matrix(1:4,2) # matrix dengan baris 2 dan kolom 2
b7 <-matrix(6:9,2) # matrix dengan baris 2 dan kolom 2
b8 <-rbind(b5,b7)
b9 <-cbind(b7,b6,b5)
b8
## [,1] [,2]
## [1,] 2 4
## [2,] 3 5
## [3,] 6 8
## [4,] 7 9
b9
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 6 8 1 3 2 4
## [2,] 7 9 2 4 3 5
Berikut beberapa cara mengakses elemen-elemen pada matrix tertentu:
dim(b8)
## [1] 4 2
dim(b9)
## [1] 2 6
dim(b5)
## [1] 2 2
length(b9)
## [1] 12
b2[2,3]=1000
b2
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 1000 8
## [3,] 9 10 11 12
b2[2,3]
## [1] 1000
b2[2,2:4]
## [1] 6 1000 8
b2[,c(3)]
## [1] 3 1000 11
b2[1:2,]
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 1000 8
b2[c(1,3),-2]
## [,1] [,2] [,3]
## [1,] 1 3 4
## [2,] 9 11 12
b2[10]
## [1] 4
b11 <- b4[-c(1),]
b4
## [,1] [,2]
## [1,] 1 7
## [2,] 2 8
## [3,] 3 9
## [4,] 4 10
## [5,] 5 11
## [6,] 6 12
b11
## [,1] [,2]
## [1,] 2 8
## [2,] 3 9
## [3,] 4 10
## [4,] 5 11
## [5,] 6 12
b12 <- b4[,-c(1)]
b12
## [1] 7 8 9 10 11 12
Array merupakan matrix yang memiliki baris, kolom, dimensi dan buku yang bisa dibuat dengan fungsi dim=c(k,l,m,n) dimana k menyatakan baris, l menyatakan kolom, m menyatakan banyaknya dimensi atau lembar dan n menyatakan banyaknya buku. Berikut beberapa contoh matrix array yang elemennya dari vektor a14:
a14 <- 1:12
a14
## [1] 1 2 3 4 5 6 7 8 9 10 11 12
c1<-array(a14,dim=c(2,2,3))
c1
## , , 1
##
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
##
## , , 2
##
## [,1] [,2]
## [1,] 5 7
## [2,] 6 8
##
## , , 3
##
## [,1] [,2]
## [1,] 9 11
## [2,] 10 12
c2<-array(a14,dim=c(2,1,2,3))
c2
## , , 1, 1
##
## [,1]
## [1,] 1
## [2,] 2
##
## , , 2, 1
##
## [,1]
## [1,] 3
## [2,] 4
##
## , , 1, 2
##
## [,1]
## [1,] 5
## [2,] 6
##
## , , 2, 2
##
## [,1]
## [1,] 7
## [2,] 8
##
## , , 1, 3
##
## [,1]
## [1,] 9
## [2,] 10
##
## , , 2, 3
##
## [,1]
## [1,] 11
## [2,] 12
c3 <-array(a14,dim=c(1,2,4,2))
c3
## , , 1, 1
##
## [,1] [,2]
## [1,] 1 2
##
## , , 2, 1
##
## [,1] [,2]
## [1,] 3 4
##
## , , 3, 1
##
## [,1] [,2]
## [1,] 5 6
##
## , , 4, 1
##
## [,1] [,2]
## [1,] 7 8
##
## , , 1, 2
##
## [,1] [,2]
## [1,] 9 10
##
## , , 2, 2
##
## [,1] [,2]
## [1,] 11 12
##
## , , 3, 2
##
## [,1] [,2]
## [1,] 1 2
##
## , , 4, 2
##
## [,1] [,2]
## [1,] 3 4
c4 <-array(a14,dim=c(3,4))
c4
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
Berikut beberapa contoh sintax dalam menakses elemen matrix Array:
c2[,,1,]
## [,1] [,2] [,3]
## [1,] 1 5 9
## [2,] 2 6 10
c2[,,,2]
## [,1] [,2]
## [1,] 5 7
## [2,] 6 8
c2[,,1,3]
## [1] 9 10
Factor dapat dibentuk dari vektor, jika ada kebutuhan untuk mengkategorikan nilai-nilai yang dimiliki oleh suatu variable maka faktor dapat memberikan kemudahan. Fungsifactor() dalam R dapat digunakan untuk mengetahui keragaman level pada data vektor. Misalkan diberikan data 1, 2, 3, 2, 1, 4, 6, 3, 2, 6, 2, 4, 5, 3, 3, 2. Berdasarkan data tersebut terdapat 6 level yakni 1, 2, 3, 4, 5, dan 6.
Contoh lain misalnya pada variabel a15 berikut akan dibuat menjadi factor dengan nama variabel baru d1. Setelah diubah menjadi factor, vektor a15 akan terurut berdasarkan abjad dalam variabel d1 dan otomatis menjadi data yang bernilai nominal, sehingga A=1, AB=2, B=3, C=4.
a15 <- c("A","B","AB","O")
d1 <- factor(a15)
a15
## [1] "A" "B" "AB" "O"
d1
## [1] A B AB O
## Levels: A AB B O
Jika ingin mengatur level vektor dengan urutan tertentu, kita bisa menggunakan sintax berikut:
d2 <-factor(a15,levels=c("O","A","B","AB"))
d2
## [1] A B AB O
## Levels: O A B AB
levels(d2)
## [1] "O" "A" "B" "AB"
cara lain agar level data sesuai dengan urutan yang dibuat yaitu dengan menggunakan fungsi ordered() seperti pada contoh berikut:
a16 <-c("SD","SMP","SMA")
d3 <-ordered(a16) #skala pengukuran ordinal
a16
## [1] "SD" "SMP" "SMA"
d3
## [1] SD SMP SMA
## Levels: SD < SMA < SMP
Berikut cara lain untuk membuat vektor a16 menjadi factor:
d4 <-ordered(a16, levels=a16)
d5 <-factor(a16, levels=a16, ordered=TRUE)
d4
## [1] SD SMP SMA
## Levels: SD < SMP < SMA
d5
## [1] SD SMP SMA
## Levels: SD < SMP < SMA
levels(d5)
## [1] "SD" "SMP" "SMA"
sama halnya dengan vektor pada umumnya, nilai tertentu pada data factor juga bisa di akses seperti contoh berikut, d1[2] untuk menampilkan elemen ke-2 yang ada dalam d1, sedangkan d4[2:3] menampilkan elemen ke-2 sampai ke-3 yang ada didalam d4:
d1[2]
## [1] B
## Levels: A AB B O
d4[2:3]
## [1] SMP SMA
## Levels: SD < SMP < SMA
Sebagaimana vektor, list juga merupakan wadah untuk menyimpan nilai. Perbedaannya adalah pada list, elemennya dapat bertipe apa saja dan tidak harus sama. Elemen dari suatu list dapat diakses dengan mengambil nama list dan nama elemen dari list yang dihubungkan dengan lambang “$”.
Dalam R, fungsi list() digunakan untuk membuat suatu list. Diberikan contoh membuat list bernama listku. Perhatikan bahwa pada list yang bernama listku terdiri dari 4 anggota list (list members) atau 4 vektor, yakni data1, data2, data3, dan data4. Elemen dari vektor data1 adalah 3, 2, dan 1, elemen dari vektor data2 adalah 1, 2, 3, dan 4, dan elemen dari data3 adalah “ari”, “arif”. Perintah R “mode(listku)” memperlihatkan bahwa variabel listku berjenis list.
listku <- list(data1=c(3,2,1), data2=c(1,2,3,4), data3=c("ari","arif"))
mode(listku)
## [1] "list"
listku
## $data1
## [1] 3 2 1
##
## $data2
## [1] 1 2 3 4
##
## $data3
## [1] "ari" "arif"
names(listku)
## [1] "data1" "data2" "data3"
length(listku)
## [1] 3
listku[1]
## $data1
## [1] 3 2 1
listku[[1]]
## [1] 3 2 1
listku[c(1,3)]
## $data1
## [1] 3 2 1
##
## $data3
## [1] "ari" "arif"
Jika ingin mengubah nama dari anggota list dapat diganti diberikan ilustrasi mengganti nama dari anggota list listku. Pada awalnya nama-nama anggota dari listku adalah data1, data2, data3. Perintah R names(listku)[3] <- c(“bukandata3”) bakan mengganti nama dari anggota list daftar yang ketiga (pada indeks ke-3) dengan nama “bukandata3”. Sementara perintah R names(listku)[c(1,2)] <- c(“bukandata1”, “bukandata2”) akan mengganti nama dari anggota list daftar yang pertama dan kedua (pada indeks ke-1 dan indeks ke-2) dengan nama “bukandata1” dan “bukandata2”.
names(listku)[3] <- c("bukandata3")
names(listku)[c(1,2)] <- c("bukandata1", "bukandata2")
names(listku)
## [1] "bukandata1" "bukandata2" "bukandata3"
Data frame merupakan kerangka data yang berbentuk tabel list dan berisi variable yang memiliki karakteristik seperti matrix. Berikut syarat list bisa diubah menjadi data frame:
− Komponennya harus berupa vektor (numeric, karakter atau logika), faktor, matriks numeric, list, atau data frame lainnya. − Matriks, list, dan data frame menyediakan banyak variable untuk data frame sebanyak kolom, elemen atau variable yang dimiliki/didefinisikan sebelumnya. 38 − Struktur vektor yang ditampilkan dalam bentuk variable suatu data frame harus memiliki panjang yang sama, struktur matriknya harus mempunyai ukuran baris yang sama.
Pada contoh ini, kita akan membuat data frame dengan variabel Nama, Tinggi (tinggi menyatakan tinggi badan dalam cm) dan Tahun (tahun menyatakan tahun lahir).
Nama <- c("Ana","Banu","Candra","Dedi","Elang","Fatu","Galih")
Tinggi <- c(169,158,182,176,150,160,172)
Tahun <- c(1996,2003,1993,1890,2007,2010,1993)
df <- data.frame(Nama,Tinggi,Tahun)
df
info1 <- df[2]
info2 <- df[2:3]
info1
info2
info3 <- df$Nama
info3
## [1] "Ana" "Banu" "Candra" "Dedi" "Elang" "Fatu" "Galih"
colnames(df)
## [1] "Nama" "Tinggi" "Tahun"
str(df)
## 'data.frame': 7 obs. of 3 variables:
## $ Nama : chr "Ana" "Banu" "Candra" "Dedi" ...
## $ Tinggi: num 169 158 182 176 150 160 172
## $ Tahun : num 1996 2003 1993 1890 2007 ...
summary(df)
## Nama Tinggi Tahun
## Length:7 Min. :150.0 Min. :1890
## Class :character 1st Qu.:159.0 1st Qu.:1993
## Mode :character Median :169.0 Median :1996
## Mean :166.7 Mean :1985
## 3rd Qu.:174.0 3rd Qu.:2005
## Max. :182.0 Max. :2010
Seorang peneliti merancang sebuah perancangan percobaan RAKL dengan 4 perlakuan dan 3 kelompok (anggaplah respon percobaan berupa baris bilangan). Bantulah peneliti tersebut untuk membuat raw data seperti output sebagai berikut!
Perl <- c("P1","P1","P1","P2","P2","P2","P3","P3","P3","P4","P4","P4")
Kel <- rep(1:3,4)
Resp <- seq(1,23, by=2)
data1 <- data.frame(Perl,Kel,Resp)
data1
Manajemen data merupakan bagian penting dalam setiap proses analisa data. Proses import dan eksport data pada berbagai format penting untuk dipelajari. Selain itu, proses perapihan data sebelum analisa menjadi bagian yang harus ada pada awal proses analisa. Pada tulisan ini akan dibahas beberapa hal mengenai manajemen data frame diantaranya:
Membuat variabel baru dalam data frame dapat dilakukan seperti membuat vektor, sintax yang bisa digunakan adalah
Sebagai contoh pada latihan 1 akan dibuat variabel baru dengan nama ‘baru1’ yang berisi nilai 12 sampai 1 secara berurutan.
data1$baru1<-12:1
data1
Apabila pada data1 yang terdiri dari 4 variabel akan ditampilkan data (data2) yang hanya termasuk kelompok 1 maka bisa menggunakan sintax berikut:
indeks1 <- data1$Kel == 1
data2 <- data1[indeks1,]
indeks1
## [1] TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE
data2
Apabila pada data1 yang terdiri dari 4 variabel akan ditampilkan data (data3) yang hanya termasuk kelompok 1 atau perlakuan P2, kita bisa menggunakan sintax berikut:
indeks2 <- data1$Kel == 1 | data1$Perl == "P2"
data3 <- data1[indeks2,]
data3
Apabila pada data1 yang terdiri dari 4 variabel akan ditampilkan data (data4) yang responnya merupakan bilangan prima, kita bisa menggunakan sintax berikut:
indeks3 <-data1$Resp %in% c(2,3,5,7,11,13,17,19,23)
data4 <-data1[indeks3,]
data4
Apabila pada data1 yang terdiri dari 4 variabel akan ditampilkan data (data5) yang mana pada variabel kelompoknya diurut dari kecil ke besar (ascending), kita bisa menggunakan sintax berikut:
indeks4 <- order(data1$Kel)
data5 <- data1[indeks4,]
data5
Apabila pada data1 yang terdiri dari 4 variabel akan ditampilkan data (data6) yang mana pada variabel kelompoknya diurut dari besar ke kecil (descending), kita bisa menggunakan sintax berikut:
indeks5 <- order(data1$Kel, data1$Resp, decreasing=TRUE)
data6 <- data1[indeks5,]
data6
Apabila pada data1 yang terdiri dari 4 variabel akan ditampilkan data berdasarkan kelompok secara ascending (data7) dan respon secara descending (data8), kita bisa menggunakan sintax berikut:
indeks6 <- order(data1$Resp, decreasing=TRUE)
data7 <- data1[indeks6,]
indeks7 <- order(data7$Kel)
data8 <- data7[indeks7,]
data7
data8
data8$Resp
## [1] 19 13 7 1 21 15 9 3 23 17 11 5
rev((data8$Resp))
## [1] 5 11 17 23 3 9 15 21 1 7 13 19
sort(data8$Resp)
## [1] 1 3 5 7 9 11 13 15 17 19 21 23
order(data8$Resp)
## [1] 4 8 12 3 7 11 2 6 10 1 5 9
rank(data8$Resp)
## [1] 10 7 4 1 11 8 5 2 12 9 6 3
data8$Resp>10
## [1] TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE
which(data8$Resp>10)
## [1] 1 2 5 6 9 10 11
data8$Resp[data8$Resp>10] # cara 1
## [1] 19 13 21 15 23 17 11
data8$Resp[which(data8$Resp>10)] # cara 2
## [1] 19 13 21 15 23 17 11
Lakukanlah recoding pada data8 untuk variabel respon dengan kondisi jika respon<15 maka Code= 1, selainnya Code= 0
data8$Code1 <-0*(data8$Resp>=15) + 1*(data8$Resp<15)
data8
data8$Code2 <-ifelse(data8$Resp<15,1,0)
data8
library(car) # memanggil library car untuk fungsi recode()
## Loading required package: carData
data8$Code3 <- recode(data8$Resp,'1:14=1; else=0')
data8
Merging data adalah proses menggabungkan dua atau lebih kumpulan data menjadi satu kumpulan data. Seringkali, proses ini diperlukan ketika Anda memiliki data mentah yang disimpan dalam beberapa file, lembar kerja, atau tabel data, yang ingin Anda analisis semuanya sekaligus.
Pada latihan ini dibuat data frame baru yang diberi nama tabel1, kemudian digabungkan dengan data1 sehingga diperoleh data9 dan data 10 sebagai berikut:
tabel1 <- data.frame(Tr=c("P4","P2","P5"), k1=c(50,100,200))
tabel1
data9<-merge(data1, tabel1, by.x=1, by.y=1, all=FALSE)
data10<-merge(data1, tabel1, by.x="Perl",by.y="Tr",all=TRUE)
data9
data10
Dalam pemodelan prediktif, seringkali perlu untuk membentuk kembali data agar siap untuk melakukan analisis atau membangun model. Proses transformasi data menjadi bentuk yang jelas, sederhana, dan diinginkan merupakan komponen penting dari ilmu data yang biasa disebut dengan reshaping data.
Pada latihan 10, data1 diubah menjadi data11 yang terdiri dari 3 variabel Resp, Resp.1 untuk kelompok 1, Resp 2 untuk kelompok 2, dan Resp 3 untuk kelompok 3. data12 adalah perubahan data data11 dengan direction long atau memanjang kebawah.
data1
data11 <-reshape(data1[,-4], idvar="Perl", timevar="Kel", direction="wide")
data11
data12 <-reshape(data11, idvar="Perl", timevar="Kel", direction="long")
data12