Email             :
RPubs            : https://rpubs.com/ferdnw/
Jurusan          : Statistika Bisnis
Address         : ARA Center, Matana University Tower
                         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.


1 Membuat Program dengan List R

1.1 Buat sebuah list untuk menyimpan 5 orang teman dekatmu

list1=list("Marchella", "Calvin", "Karen", "Harris", "Felicia")
print(c(list1)
    )
## [[1]]
## [1] "Marchella"
## 
## [[2]]
## [1] "Calvin"
## 
## [[3]]
## [1] "Karen"
## 
## [[4]]
## [1] "Harris"
## 
## [[5]]
## [1] "Felicia"

1.2 Pilihlah satu orang dari list tersebut yang menjadi teman paling dekatmu dengan menggunakan index

 print(list1[5])
## [[1]]
## [1] "Felicia"

1.3 Gantilah satu orang yang tidak begitu dekat denganmu dengan teman baru yang kamu temui baru-baru ini

list1[3]="Jesselyn"
print(list1)
## [[1]]
## [1] "Marchella"
## 
## [[2]]
## [1] "Calvin"
## 
## [[3]]
## [1] "Jesselyn"
## 
## [[4]]
## [1] "Harris"
## 
## [[5]]
## [1] "Felicia"

1.4 Bagaimana caranya anda menghitung banyak teman yang ada dalam list tersebut

length(list1)
## [1] 5

2 Tuple

2.1 Buatlah Tuple dengan 5 item didalamnya

library(sets) 
tuple1 = tuple("Aku", "Umur", 20, "Tahun","Ini")
print(tuple1)
## ("Aku", "Umur", 20, "Tahun", "Ini")

2.2 Buatlah Tuple dengan 5 item didalamnya

library(sets)
tuple2 = tuple ("Tinggi", "Badan", "Saya", 175, "Cm")
print(tuple2)
## ("Tinggi", "Badan", "Saya", 175, "Cm")

2.3 Perlihatkan cara Mengakses Nilai Tuple

print(tuple1[4])
## ("Tahun")

## Bagaimana anda melakukan Slicing Nilai Tuple

print(tuple2[3:5])
## ("Saya", 175, "Cm")

2.4 Nested Tuple

tuple3 = c(tuple1, tuple2)
print(tuple3)
## ("Aku", "Umur", 20, "Tahun", "Ini", "Tinggi", "Badan", "Saya", 175,
##  "Cm")

2.5 Unpacking Sequence

Unpacking sequence tidak disupport oleh R

3 Dictionary

library(Dict)
## 
## Attaching package: 'Dict'
## The following object is masked from 'package:sets':
## 
##     %>%
ferdnw = dict(
  nama=" Ferdinand Nathaniel Widjaya",
  umur= 19L,
  tinggi= 175.5,
  menikah= FALSE,
  hobi=list("gaming", 'Tidur'),
  connectme= tuple(insta="fe_nw",
                   line= "fenw",
                   ml=4014450) )

3.1 Mengakses dictionary

cat("Nama saya", ferdnw$get('nama'))
## Nama saya  Ferdinand Nathaniel Widjaya
print(ferdnw$get('connectme')['insta'])  
## (insta = "fe_nw")

3.2 Menambahkan Dictionary

ferdnw["nama"] = "Ferdinand Nathaniel Saudi"
print(ferdnw$get('nama'))
## [1] "Ferdinand Nathaniel Saudi"

3.3 Menghapus Dictionary

ferdnw$remove("tinggi") 
print(ferdnw$get('tinggi'))
## NULL

4 Data Frame

df1_R <- data.frame(kode = c ( 1:5 ), 
nama = c ( " Jeremy " , " Dhela " , " Felicia " , " Ling " , " Claude " ), 
gender=c("L","P","P","L","L"),
gaji = c (666.3 ,  585.2 ,711.8,849.0,888.5 ) ,
mulai_kerja = as.Date(c(" 2021-01-01 " , " 2022-08-24 " , " 2012-11-14 " , " 2020-07-07", "2020-02-27")),  
divisi = c ( "GL" , "EL" , "M" , "R" , "J" ) ,  stringsAsFactors = F )

df2_R <- data.frame(kode = c ( 6:10 ), 
nama = c ( " Iwan " , " Michelle " , " Harith " , "  Asep Bensin " , " Albert " ),
gender=c("L","P","L","L","L"),
gaji = c (526.7 ,  433.5 ,911.0,751.0,899.2 ) ,
mulai_kerja = as.Date(c(" 2019-01-01 " , " 2022-10-24 " , " 2012-01-11 " , " 2020-09-09", "2020-07-27")),  
divisi = c ( "GL" , "M" , "R" , "J", "EL"  ) ,  stringsAsFactors = F )

df3_R<- rbind(df1_R,df2_R)
print(df3_R)
##    kode           nama gender  gaji mulai_kerja divisi
## 1     1        Jeremy       L 666.3  2021-01-01     GL
## 2     2         Dhela       P 585.2  2022-08-24     EL
## 3     3       Felicia       P 711.8  2012-11-14      M
## 4     4          Ling       L 849.0  2020-07-07      R
## 5     5        Claude       L 888.5  2020-02-27      J
## 6     6          Iwan       L 526.7  2019-01-01     GL
## 7     7      Michelle       P 433.5  2022-10-24      M
## 8     8        Harith       L 911.0  2012-01-11      R
## 9     9   Asep Bensin       L 751.0  2020-09-09      J
## 10   10        Albert       L 899.2  2020-07-27     EL

4.1 Ekstraksi Data Frame

typeof(df3_R)
## [1] "list"
df3_R$nama
##  [1] " Jeremy "       " Dhela "        " Felicia "      " Ling "        
##  [5] " Claude "       " Iwan "         " Michelle "     " Harith "      
##  [9] "  Asep Bensin " " Albert "
df3_R[,c('nama', 'gaji')]
##              nama  gaji
## 1         Jeremy  666.3
## 2          Dhela  585.2
## 3        Felicia  711.8
## 4           Ling  849.0
## 5         Claude  888.5
## 6           Iwan  526.7
## 7       Michelle  433.5
## 8         Harith  911.0
## 9    Asep Bensin  751.0
## 10        Albert  899.2
df3_R[4:7,]
##   kode       nama gender  gaji mulai_kerja divisi
## 4    4      Ling       L 849.0  2020-07-07      R
## 5    5    Claude       L 888.5  2020-02-27      J
## 6    6      Iwan       L 526.7  2019-01-01     GL
## 7    7  Michelle       P 433.5  2022-10-24      M
subset(df3_R, select = 2:4)
##              nama gender  gaji
## 1         Jeremy       L 666.3
## 2          Dhela       P 585.2
## 3        Felicia       P 711.8
## 4           Ling       L 849.0
## 5         Claude       L 888.5
## 6           Iwan       L 526.7
## 7       Michelle       P 433.5
## 8         Harith       L 911.0
## 9    Asep Bensin       L 751.0
## 10        Albert       L 899.2
mean(df3_R$gaji)
## [1] 722.22

5 Ganti Nama Variabel

library(tidyverse) 
## Registered S3 method overwritten by 'ggplot2':
##   method        from
##   print.element sets
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.4     v dplyr   1.0.7
## v tidyr   1.1.3     v stringr 1.4.0
## v readr   2.0.1     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x forcats::%>%()  masks stringr::%>%(), dplyr::%>%(), purrr::%>%(), tidyr::%>%(), tibble::%>%(), Dict::%>%(), sets::%>%()
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
df3_R%>%
  rename ( "Salary" = "gaji",
           "Nomor" = "kode",
           "Name" = "nama",
           "Start"="mulai_kerja",
           "Division"="divisi")
##    Nomor           Name gender Salary      Start Division
## 1      1        Jeremy       L  666.3 2021-01-01       GL
## 2      2         Dhela       P  585.2 2022-08-24       EL
## 3      3       Felicia       P  711.8 2012-11-14        M
## 4      4          Ling       L  849.0 2020-07-07        R
## 5      5        Claude       L  888.5 2020-02-27        J
## 6      6          Iwan       L  526.7 2019-01-01       GL
## 7      7      Michelle       P  433.5 2022-10-24        M
## 8      8        Harith       L  911.0 2012-01-11        R
## 9      9   Asep Bensin       L  751.0 2020-09-09        J
## 10    10        Albert       L  899.2 2020-07-27       EL
LS0tDQp0aXRsZTogIkFsZ29yaXRtYSBkYW4gU3RydWt0dXIgRGF0YSINCnN1YnRpdGxlOiAiVHVnYXMgMyAiDQphdXRob3I6ICJGZXJkaW5hbmQgTmF0aGFuaWVsIFdpZGpheWEgKDIwMjE0OTIwMDA2KSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGh0bWxfZG9jdW1lbnQ6IG51bGwNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDoNCiAgICAgIGNvbGxhcHNlZDogeWVzICANCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIHRoZW1lOiBzYW5kc3RvbmUNCiAgICBjc3M6IHN0eWxlMS5jc3MNCiAgICBoaWdobGlnaHQ6IG1vbm9jaHJvbWUNCi0tLQ0KDQoNCjxpbWcgc3R5bGU9ImZsb2F0OiByaWdodDsgbWFyZ2luOiAwcHggMTAwcHggMHB4IDBweDsgd2lkdGg6MjUlIiBzcmM9ImZvdG8uanBnIi8+IA0KDQpgYGB7ciBsb2dvLCBlY2hvPUZBTFNFLGZpZy5hbGlnbj0nY2VudGVyJywgb3V0LndpZHRoID0gJzMwJSd9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygibG9nb21hdGFuYS5wbmciKQ0KYGBgDQoNCkVtYWlsICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOzogIGZlcmRpbmFuZC53aWRqYXlhQHN0dWRlbnQubWF0YW5hdW5pdmVyc2l0eS5hYy5pZCA8YnI+DQpSUHVicyAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBodHRwczovL3JwdWJzLmNvbS9mZXJkbncvIDxicj4NCkp1cnVzYW4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogW1N0YXRpc3Rpa2EgQmlzbmlzXShodHRwczovL21hdGFuYXVuaXZlcnNpdHkuYWMuaWQvP2x5PWFjYWRlbWljJmM9c2IpIDxicj4NCkFkZHJlc3MgICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IEFSQSBDZW50ZXIsIE1hdGFuYSBVbml2ZXJzaXR5IFRvd2VyIDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IEpsLiBDQkQgQmFyYXQgS2F2LCBSVC4xLCBDdXJ1ZyBTYW5nZXJlbmcsIEtlbGFwYSBEdWEsIFRhbmdlcmFuZywgQmFudGVuIDE1ODEwLg0KDQoqKioqDQojIE1lbWJ1YXQgUHJvZ3JhbSBkZW5nYW4gTGlzdCBSDQoNCiMjIEJ1YXQgc2VidWFoIGxpc3QgdW50dWsgbWVueWltcGFuIDUgb3JhbmcgdGVtYW4gZGVrYXRtdQ0KDQpgYGB7cn0NCmxpc3QxPWxpc3QoIk1hcmNoZWxsYSIsICJDYWx2aW4iLCAiS2FyZW4iLCAiSGFycmlzIiwgIkZlbGljaWEiKQ0KcHJpbnQoYyhsaXN0MSkNCiAgICApDQpgYGANCiMjIFBpbGlobGFoIHNhdHUgb3JhbmcgZGFyaSBsaXN0IHRlcnNlYnV0IHlhbmcgbWVuamFkaSB0ZW1hbiBwYWxpbmcgZGVrYXRtdSAgZGVuZ2FuIG1lbmdndW5ha2FuIGluZGV4DQoNCmBgYHtyfQ0KIHByaW50KGxpc3QxWzVdKQ0KYGBgDQoNCiMjIEdhbnRpbGFoIHNhdHUgb3JhbmcgeWFuZyB0aWRhayBiZWdpdHUgZGVrYXQgZGVuZ2FubXUgZGVuZ2FuIHRlbWFuIGJhcnUgeWFuZyBrYW11IHRlbXVpIGJhcnUtYmFydSBpbmkNCg0KYGBge3J9DQpsaXN0MVszXT0iSmVzc2VseW4iDQpwcmludChsaXN0MSkNCmBgYA0KDQojIyBCYWdhaW1hbmEgY2FyYW55YSBhbmRhIG1lbmdoaXR1bmcgYmFueWFrIHRlbWFuIHlhbmcgYWRhIGRhbGFtIGxpc3QgdGVyc2VidXQNCg0KYGBge3J9DQpsZW5ndGgobGlzdDEpDQpgYGANCiMgVHVwbGUgDQoNCiMjIEJ1YXRsYWggVHVwbGUgZGVuZ2FuIDUgaXRlbSBkaWRhbGFtbnlhDQoNCmBgYHtyfQ0KbGlicmFyeShzZXRzKSANCnR1cGxlMSA9IHR1cGxlKCJBa3UiLCAiVW11ciIsIDIwLCAiVGFodW4iLCJJbmkiKQ0KcHJpbnQodHVwbGUxKQ0KYGBgDQoNCiMjIEJ1YXRsYWggVHVwbGUgZGVuZ2FuIDUgaXRlbSBkaWRhbGFtbnlhDQoNCmBgYHtyfQ0KbGlicmFyeShzZXRzKQ0KdHVwbGUyID0gdHVwbGUgKCJUaW5nZ2kiLCAiQmFkYW4iLCAiU2F5YSIsIDE3NSwgIkNtIikNCnByaW50KHR1cGxlMikNCmBgYA0KIyMgUGVybGloYXRrYW4gY2FyYSBNZW5nYWtzZXMgTmlsYWkgVHVwbGUNCg0KYGBge3J9DQpwcmludCh0dXBsZTFbNF0pDQpgYGANCg0KICMjIEJhZ2FpbWFuYSBhbmRhIG1lbGFrdWthbiBTbGljaW5nIE5pbGFpIFR1cGxlDQogDQpgYGB7cn0NCnByaW50KHR1cGxlMlszOjVdKQ0KYGBgDQogDQojIyBOZXN0ZWQgVHVwbGUNCmBgYHtyfQ0KdHVwbGUzID0gYyh0dXBsZTEsIHR1cGxlMikNCnByaW50KHR1cGxlMykNCmBgYA0KDQojIyBVbnBhY2tpbmcgU2VxdWVuY2UNCg0KVW5wYWNraW5nIHNlcXVlbmNlIHRpZGFrIGRpc3VwcG9ydCBvbGVoIFINCg0KIyBEaWN0aW9uYXJ5IA0KDQpgYGB7cn0NCmxpYnJhcnkoRGljdCkNCmZlcmRudyA9IGRpY3QoDQogIG5hbWE9IiBGZXJkaW5hbmQgTmF0aGFuaWVsIFdpZGpheWEiLA0KICB1bXVyPSAxOUwsDQogIHRpbmdnaT0gMTc1LjUsDQogIG1lbmlrYWg9IEZBTFNFLA0KICBob2JpPWxpc3QoImdhbWluZyIsICdUaWR1cicpLA0KICBjb25uZWN0bWU9IHR1cGxlKGluc3RhPSJmZV9udyIsDQogICAgICAgICAgICAgICAgICAgbGluZT0gImZlbnciLA0KICAgICAgICAgICAgICAgICAgIG1sPTQwMTQ0NTApICkNCg0KICANCmBgYA0KDQoNCiMjIE1lbmdha3NlcyBkaWN0aW9uYXJ5DQoNCmBgYHtyfQ0KY2F0KCJOYW1hIHNheWEiLCBmZXJkbnckZ2V0KCduYW1hJykpDQpwcmludChmZXJkbnckZ2V0KCdjb25uZWN0bWUnKVsnaW5zdGEnXSkgIA0KDQoNCmBgYA0KDQojIyBNZW5hbWJhaGthbiBEaWN0aW9uYXJ5DQoNCmBgYHtyfQ0KZmVyZG53WyJuYW1hIl0gPSAiRmVyZGluYW5kIE5hdGhhbmllbCBTYXVkaSINCnByaW50KGZlcmRudyRnZXQoJ25hbWEnKSkNCmBgYA0KDQoNCiMjIE1lbmdoYXB1cyBEaWN0aW9uYXJ5DQoNCmBgYHtyfQ0KZmVyZG53JHJlbW92ZSgidGluZ2dpIikgDQpwcmludChmZXJkbnckZ2V0KCd0aW5nZ2knKSkNCmBgYA0KDQoNCiMgRGF0YSBGcmFtZQ0KDQpgYGB7cn0NCmRmMV9SIDwtIGRhdGEuZnJhbWUoa29kZSA9IGMgKCAxOjUgKSwgDQpuYW1hID0gYyAoICIgSmVyZW15ICIgLCAiIERoZWxhICIgLCAiIEZlbGljaWEgIiAsICIgTGluZyAiICwgIiBDbGF1ZGUgIiApLCANCmdlbmRlcj1jKCJMIiwiUCIsIlAiLCJMIiwiTCIpLA0KZ2FqaSA9IGMgKDY2Ni4zICwgIDU4NS4yICw3MTEuOCw4NDkuMCw4ODguNSApICwNCm11bGFpX2tlcmphID0gYXMuRGF0ZShjKCIgMjAyMS0wMS0wMSAiICwgIiAyMDIyLTA4LTI0ICIgLCAiIDIwMTItMTEtMTQgIiAsICIgMjAyMC0wNy0wNyIsICIyMDIwLTAyLTI3IikpLCAgDQpkaXZpc2kgPSBjICggIkdMIiAsICJFTCIgLCAiTSIgLCAiUiIgLCAiSiIgKSAsICBzdHJpbmdzQXNGYWN0b3JzID0gRiApDQoNCmRmMl9SIDwtIGRhdGEuZnJhbWUoa29kZSA9IGMgKCA2OjEwICksIA0KbmFtYSA9IGMgKCAiIEl3YW4gIiAsICIgTWljaGVsbGUgIiAsICIgSGFyaXRoICIgLCAiICBBc2VwIEJlbnNpbiAiICwgIiBBbGJlcnQgIiApLA0KZ2VuZGVyPWMoIkwiLCJQIiwiTCIsIkwiLCJMIiksDQpnYWppID0gYyAoNTI2LjcgLCAgNDMzLjUgLDkxMS4wLDc1MS4wLDg5OS4yICkgLA0KbXVsYWlfa2VyamEgPSBhcy5EYXRlKGMoIiAyMDE5LTAxLTAxICIgLCAiIDIwMjItMTAtMjQgIiAsICIgMjAxMi0wMS0xMSAiICwgIiAyMDIwLTA5LTA5IiwgIjIwMjAtMDctMjciKSksICANCmRpdmlzaSA9IGMgKCAiR0wiICwgIk0iICwgIlIiICwgIkoiLCAiRUwiICApICwgIHN0cmluZ3NBc0ZhY3RvcnMgPSBGICkNCg0KZGYzX1I8LSByYmluZChkZjFfUixkZjJfUikNCnByaW50KGRmM19SKQ0KYGBgDQoNCg0KIyMgRWtzdHJha3NpIERhdGEgRnJhbWUNCiANCmBgYHtyfQ0KdHlwZW9mKGRmM19SKQ0KYGBgDQoNCmBgYHtyfQ0KZGYzX1IkbmFtYQ0KYGBgDQoNCmBgYHtyfQ0KZGYzX1JbLGMoJ25hbWEnLCAnZ2FqaScpXQ0KYGBgDQoNCmBgYHtyfQ0KZGYzX1JbNDo3LF0NCmBgYA0KDQpgYGB7cn0NCnN1YnNldChkZjNfUiwgc2VsZWN0ID0gMjo0KQ0KYGBgDQoNCmBgYHtyfQ0KbWVhbihkZjNfUiRnYWppKQ0KYGBgDQoNCiMgR2FudGkgTmFtYSBWYXJpYWJlbA0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKSANCmRmM19SJT4lDQogIHJlbmFtZSAoICJTYWxhcnkiID0gImdhamkiLA0KICAgICAgICAgICAiTm9tb3IiID0gImtvZGUiLA0KICAgICAgICAgICAiTmFtZSIgPSAibmFtYSIsDQogICAgICAgICAgICJTdGFydCI9Im11bGFpX2tlcmphIiwNCiAgICAgICAgICAgIkRpdmlzaW9uIj0iZGl2aXNpIikNCg0KYGBgDQogIA0K