Tag Archives: rstats

Identifying hidden pattern in the hot water dataset using R

The following abstract is part of our full report on our small research funded by ITB Research Grant 2016. The code and dataset are available here and the Markdown Source of the complete report can be find here.

Continue reading Identifying hidden pattern in the hot water dataset using R

Problem input csv data dalam R

Assalamu’alaikum wrwb. Selamat pagi R user.
Berbagai pengalaman saya saat menyimpan data dengan R. Memang belajar itu adalah pekerjaan setiap hari dan tidak kenal usia. Walaupun sudah menggunakan R sejak 2013 — “menggunakan” ya bukan “memprogram” karena saya memang bukan programmer 🙂 — tapi masih saja banyak hal yang saya pelajari. Bahkan untuk hal-hal mendasar.
idiom-sleep-illustration-58365318
(gambar dipinjam dari sini)
Salah satunya adalah saat saya akan menginput data dalam format csv awal minggu ini. Data seperti biasa saya input dan rapihkan menggunakan LibreOffice. Reformatting yang saya lakukan seperti biasa adalah:
  • cek judul kolom dan baris, apakah ada yang di-merge;
  • penamaan ulang judul kolom dan baris agar lebih ringkas tapi tidak kehilangan info utama;
  • cek jenis data: apakah numerik atau bukan dst.

Kemudian tabel saya save as ke dalam for csv. Sebelum akhirnya saya baca dalam R.

Baca data seperti biasa perintahnya:

foo

Kemudian cek jenis data dengan perintah:

str(foo)

Yang aneh data yang saya harapkan numerik jenisnya, terbaca sebagai factor. Saya cek balik ke tabel, Googling bagaimana cara mengkonversi tipe data dst, tidak berhasil!

Kemudian saya tinggal tidur. Ya betul kalau ada yang tidak beres, masalah apapun Sleep on it. 🙂

Keesokan paginya saya coba lagi buka data spreadsheet nya. Kemudian saya iseng ubah format angkanya. Yang sebelumnya format angkanya dengan koma dan titik, saya kembalikan ke default. Artinya angka anda hanya ada tanda desimalnya (bisa koma atau titik), sedangkan pemisah untuk ribuannya hilang.

Saya save as ke csv kembali, dan baca di dalam R.

Dan voila!

Kolom numerik yang sebelumnya terbaca sebagai factor, sekarang terbaca sebagai numerik.

Jadi kalau anda masih menggabungkan pola kerja data input dengan spreadsheet seperti saya, maka hilangkan segala formatting, terutama terhadap angka sebelum meyimpannya ke dalam format ASCII (misal csv atau txt)

Moral of the story: Sleep on it 🙂

Introduction to R for Computational Chemistry Students

This morning I’ll be introducing R for computational chemistry class at Room 9305 Labtek V (hosted by Dr. Rukman Hertadi, ResearchGate profile). Check out this map for the location. See you there.

The following Prezi slide could be used as teaser.

https://prezi.com/embed/drh1d-tv8voi/?bgcolor=ffffff&lock_to_path=0&autoplay=0&autohide_ctrls=0&landing_data=bHVZZmNaNDBIWnNjdEVENDRhZDFNZGNIUE43MHdLNWpsdFJLb2ZHanI5ejVXb1NCRFhSVnl2RkwyVHIvUWNaWHhnPT0&landing_sign=8wCuMN1Y5Y5ErdKipL0_N9EcPYPf_KXfSQgyjTtShQk

 

New (RMarkdown) post from OS X 10.10 (Yosemite)

This is my first post on OSX 10.10 (nick name: Yosemite). Yep I always late…

As I did mostly, I blog using RMarkdown. It allows you to manipulate your source file in to a structured text and convert it to almost any formats: odt, docx, pdf, html, etc.

Basically you can make any docs containing:

  • outline
  • bullets and numbering
  • basics formatting:
    • make it bold = bold,
    • or italic = italic,
    • even make an superscript symbol = superscript and off course subscript subscript ,
    • strikethrough
    • write equations: $ Q = CA(dh/dl) $
    • insert a link: DasaptaErwinBlog
    • insert a figure: itb_logo
    • insert a quote or lines of code: quote from Einstein
    • insert a table:
Name Age (ya)
Rex 65,000,000
Mankind 100.000
me 39
wife 35
Radit 8
Bila 4
- make a chart out of it
Name <- c('Rex', 'Mankind', 'Me', 'Wife', 'Radit', 'Bila')
Age <- c(65, 0.1, 39, 35, 8, 4)
df <- data.frame(Name, Age)
plot(df, main="Age comparison", xlab="Species", ylab="Age (mya)")

Rplot01
  • and a whole lot more

Another good thing is you can built the entire doc in plain text (ASCII). So it’s:

  • light weight: in kb
  • connected to any word-processor:
    • Libreoffice
    • MS office
  • or text-editor:
    • notepad
    • wordpad
  • virus-free

//

1st Circular: Indonesia R Meet Up

  

Karena ternyata sudah banyak yang “terungkap” sebagai Pengguna R (pada tahap beginners hingga advanced), sudah saatnya merancang acara R meet up. Contohnya seperti ini: http://r-users-group.meetup.com/.

Komunitas Indonesia R User akan menyelenggarakan Indonesia R Meet Up yang pertama, dengan tema R 4 All.

TORnya sebagai berikut:

  • Siapa saja yang boleh hadir: semua yang berminat dan join R user group.
  • Siapa saja yang boleh mengirimkan abstrak: pengguna R (tidak ada batasan kompetensi), dan harus join R user group.
  • Apa saja yang boleh dipresentasikan: semua topik asal menggunakan R.

Topik sementara ini hanya dibagi dua: 

  1. Natural sciences (termasuk kedokteran, kesehatan)
  2. Social sciences (termasuk ekonomi)

  • Bagaimana format abstrak: 200 kata, ada max 5 kata kunci, menggandung latar belakang, metode, hasil, kesimpulan, rekomendasi. Kode R disampaikan sebagai lampiran.
  • Dikirim ke mana: di post di Wall R User Group.

Masukan-masukan terhadap penyelenggaraan acara agar dapat ditulis di kolom komentar.

Terimakasih.

3rd Workshop: Introduction to R

Cover

Alhamdulillah

Acara 3rd Intro to R telah selesai dilaksanakan, sekitar 50 peserta telah hadir. Ada Pak Adi Pancoro Biologi 🙂

Mohon maaf atas segala kekurangan. Lain kali akan lebih rapih lagi, karena sambungan internet kurang lancar untuk instalasi package dll. Namun minimum para peserta telah memahami cara instalasi dan beberapa dasar operasi R.

Slide akan segera tersedia di SlideShare, kode lengkap akan diunggah ke Github.

Pada kesempatan berikutnya akan diadakan workshop R tematik: basic stats, multivariable analysis, exploratory data analysis, plotting, dll.

Terimakasih atas minat peserta yang tinggi. Terimakasih pula untuk Perpustakaan ITB, Bapak Mahmudin, dan para pustakawan Mas Yoka Adam cs. Semoga tidak kapok jadi host.

Unduh slide format pdf: 20150526-IntroR-Text

Slide format ioslide dapat dilihat di: Rpubs

Unduh data dan code di: GoogleDrive

Data is the new soil

Data is not the new oil, but it’s the new soil (David McCandless, TedTalks)
Anda sudah pernah lihat video Mas David McCandless di Youtube? Kalau belum lihat ya. Mampir juga nonton video gurunya, Hans Rosling.
Data juga dapat mengungkap hal-hal yang tersembunyi di balik suatu fenomena yang kita hadapi. Tapi data dalam bentuk tabel kurang cepat memberi gambaran apa yang terjadi, karena itulah kita perlu visualisasi.
Untuk para geologiwan, peta geologi adalah hanya salah satu saja bentuk visualisasi. Peta ini mentransformasi tabel jurus dan kemiringan batuan, jenis batuan, dll menjadi zonasi batuan, penampang lapisan batuan, garis sesar, lipatan dll, ke dalam selembar kertas.
Berikut ini adalah contoh lain dari visualisasi yang bisa kita lakukan untuk mengungkap sesuatu yang sebelumnya tidak terlihat. Saya menggunakan “R” dan “mtcars” data set. Data set ini adalah salah satu saja dari data set yang sudah menyatu di dalam distribusi R. Data ini diekstraksi dari Majalah “Motor Trend” tahun 1974 yang terbit di AS. Isinya adalah 10 variabel spesifikasi dari 32 merek mobil buatan tahun 1973 – 1974 Motor Trend US magazine. Spesifikasi variabel atau parameter spesifikasi yang ada dalam data ini adalah:
mpg Miles/(US) gallon              di Indonesia dibaca sebagai km per liter BBM
cyl Number of cylinders         jumlah silinder
disp Displacement (cu.in.)        di Indonesia mengenalnya sebagai cc
hp Gross horsepower             tenaga kuda
drat Rear axle ratio                   di Indonesia dikenal sebagai rasio gear
wt Weight (lb/1000)              berat kendaraan
qsec 1/4 mile time                      waktu yang diperlukan dari diam hingga 0.25 mil
vs V/S                                     ada yang tahu ini apa?
am Transmission                      transmisis matik atau manual
gear Number of forward gears  jumlah gigi maju
carb Number of carburetors      jumlah karburator
Data ini pertama kali dianalisis oleh Henderson and Velleman (1981) dalam papernya Building multiple regression models interactively. Biometrics, 37, 391–411.
Ada yang masih menggunakan Ms Excel? Anda mungkin akan berpikir ulang.
Saya akan menggunakan R dalam membuat beberapa visualisasi dalam bentuk grafik sebagai berikut.
Dengan perintah “pairs(mtcars, main = “mtcars data”)” anda sudah bisa mendapatkan grafik matriks korelasi seperti di bawah ini. Coba anda lihat, banyak yang bilang keiritan mobil (mpg) hanya ditentukan oleh cc. Karena itu kalau di Indonesia harga mobil bekas ber-cc besar akan “jatuh bebas” dibandingkan yang ber-cc kecil.
Coba kita lihat grafik 1 di bawah ini sebagian saja. Tarik garis diagonal yang ada tulisan “mpg”, “cyl” dst, dan pilih setengah saja, apakah anda ingin lihat setelah segitiga yang atas atau yang bawah. They’re all the same. Let’s just choose the lower part.
Anda lihat pola titik-titik data yang membentuk garis lurus atau mirip garis lurus (berarah diagonal), dan ada pula yang acak. Pola yang pertama menunjukkan adanya korelasi antara kedua parameter dan pola yang kedua memperlihatkan korelasi yang sangat kecil atau bahkan tidak berkorelasi sama sekali.
Pola yang membentuk keteraturan diagonal dengan mpg adalah:
  • mpg ~ disp (cc) -> keiritan dengan cc
  • mpg ~ hp -> keiritan dengan tenaga kuda
Korelasi yang relatif lebih lemah terlihat antara:
  • mpg ~ drat -> keiritan dengan rasio gear
  • mpg ~ wt -> keiritan dengan berat kendaraan
Korelasi yang lebih lemah (tapi ada) adalah antara:
  • mpg ~ qsec -> keiritan denga waktu yang diperlukan dari diam hingga menempuh 0.25 mil
Dari sini terlihat bahwa keiritan mobil anda bukan hanya ditentukan oleh besar kecilnya cc, tapi juga dengan gaya mengemudi anda (diwakili variabel qsec).
image
Gambar 1 Correlation matrix BW
Kalau anda senang warna, maka dengan satu baris perintah “corrgram(mtcars)” anda bisa membuat grafik sejenis di bawah ini.
mtcarscorrgram2
Gambar 2 Correlation matrix berwarna
Grafik pada Gambar 3 berikut ini juga dibuat hanya dengan sebaris perintah “heatmap(as.matrix(mtcars))”. Juga dapat dilihat hirarki pengelompokkannya dalam bentuk garis. Yang menarik adalah:
  • bagaimana merk-merk Jepang mengelompok dengan merk Eropa, sementara merk Amerika membentuk kelompok sendiri (kecuali Dodge Challenger, AMC Javelin, Hornet, dan Valiant). Saya akan bahas di lain waktu.
  • Corolla dan Civic sekelompok dengan Ferrari Dino dan Fiat, Mazda dengan Merc 280 berada pada kamar yang sama, serta Corona, Datsun di dalam ruangan yang sama dengan Porsche.
Sangat menarik bukan. Yang seperti ini sangat bisa diterapkan di geologi juga.
IMG_0020
Gambar 3 Heatmap dan PCA
Yang menarik lagi grafik pada Gambar 4 berikut ini. Ada yang bisa menjelaskan? Saya akan bahas di lain waktu, atau sekaligus saya harus alih profesi jadi wartawan tabloid “Otomotif”.
Masih mau pakai Excel?
🙂
image
Gambar 4 Analisis mpg ~ disp (cc) ~ cyl