Mengolah data menggunakan R

MasChoi
BOSBOUW
Published in
5 min readDec 4, 2018

--

Statistik menggunakan R

Bagaimana jadinya bila kita mempunyai data yang sangat banyak dari hasil simulasi atau pengukuran yang hasil file-nya tidak dapat langsung diolah menggunakan excel (import data terlebih dahulu) dan dari sini kita juga hendak menampilkan grafiknya. Ekstensi file-nya biasanya berupa .txt atau .csv yang tentunya biasanya dibuka langsung lewat notepad. Beberapa tools di kehutanan biasanya menggunakan format tersebut, misalnya saja tools untuk simulasi tegakan agroforestri, air, kebakaran, visualisasi tegakan, dll. Hal ini layaknya saja imulasi menggunakan beberapa software yang terdapat di kehutanan, misalnya SExI-FS (Spatially Explicit Indvidual-based Forest Simulator), SPRTIE-ND (Software for spatially-explicit simulation of forest dynamics), FARSITE (Fire Area Simulator), FlamMap ( Fire behavior mapping and analysis program), FVS (Forest Vegetation Simulator), SVS (Stand Visualization System) dan lain sebagainya.

Untuk memudahkan mendeskripsikan output file yang dihasilkan, saya ambil contoh simulasi untuk memprediksi pertumbuhan pohon menggunakan salah satu software yang telah disebutkan. Untuk membandingkan pertumbuhan akibat pengaruh jarak tanam, tentunya saya mensimulasikan pohon dengan jarak tanam acak dan tertentu (ambil saja 3x3m atau 5x5m). Pada kasus jarak tanam acak, saya menggulirkan (merunning) sampai mendapatkan pola yang sama, sehingga data yang dihasilkan mungkin lebih dari 5 bahkan 10. Jika pada masing-masing pola tanam, saya menggunakan 6 spesies dan masing-masing sebanyak 5 individu, darisini jikalau saya mensimulasikan 20 tahun (penanaman dimulai pada tahun ke-0), maka akan terdapat kira-kira 620 row per data, tinggal dikalikan saja kalau saya mempunyai lebih dari 10 data.

file yang berekstensi .csv dalam folder random_csv

Nah, sekarang itu baru yang di pola acak. Terus kalau di pola dengan jarak tanam tertentu bagaimana?(3x3m dan 5x5m) Bayangkan saja, misal saya ingin melakukan simulasi dengan 6 spesies tadi. Jika kondisinya penanaman yang akan dilakukan tidak memperhatikan urutan (tiap spesies dapat ditanam dijalur mana saja), berarti kan menggunakan permutasi dari 6 spesies tadi. Berarti data yang akan kita hasilkan sebanyak 6!=720 data, kemudian tinggal dikalikan saja dengan 620 row, itulah data gabungan yang akan kita dapatkan. Bisa saja kita menggunakan kombinasi, dengan kondisi spesies yang akan kita simulasikan memperhatikan urutan dan terdapat dua spesies yang selalu berpasangan, sehingga data yang akan kita dapatkan sebanyak 6!/(6–2)!= 30 data. Masih banyak juga kan…cmiwwiww

Kombinasi dan Permutasi

Apa itu R?

Secara general R dapat didefinisikan sebagai berikut:

A system for statistical computation and graphics. It provides, among other things, a programming language, high level graphics, interfaces to other languages and debugging facilities.

Intinya mah macam tools statistik layaknya software statatistik pada umumnya. Lebih lengkapnya dapat ditanyakan kepada kawan google. Alasan pribadi saya menggunakan R karena ringan, pengalaman dengan laptop yang saya pakai jika menggunakan SPSS, Minitab, bahkan MATLAB sekalipun hasilnya sudah pasti memunculkan layar putih disertai tulisan not responding. Penggunaan R tentunya tidak sulit, karena di TPB kita telah diajari menggunakan bahasa C/C++ kalau tidak salah pada matakuliah PTI B. Tinggal bagaimana mempelajari struktur bahasa yang terdapat di R.

Memulai Perhitungan dengan R

Pada tulisan ini saya menggunakan R pada Atom dengan package Hydrogen, PlatformIO IDE Terminal, Hydrogen Launcher dan R extensions. Cara instalasinya dapat dilihat disini. Kalau laptop sedang tidak bersahabat, terkadang saya juga menggunakan Jupyter Notebook menggunakan Anaconda. Instalasinya dapat dilihat disini, atau kalau pembaca lebih nyaman dengan RStudio tidak masalah. Senyamannya saja, karena semuanya gratis layaknya pelukan kekasih…

Pertama kita panggil semua file yang mempunya format .csv yang berada pada folder random_csv, 3x3_csv, dan csv_5x5. File-file yang kita panggil didefinisikan menggunakan variabel csv_random, csv_3x3, dan csv_5x5. Dalam R, untuk mendefinisikan variabel dapat menggunakan “=” atau “<-”. Semantara itu, untuk membuat komentar dapat menggunakan “#”. Kalau kita cek masing-masing, data pada csv_random sebanyak 10 file, csv_3x3 sebanyak 7 file, dan csv_5x5 sebanyak 7 file.

Mengidentifikasi letak semua file yang berkekstensi .csv pada sebuah folder

Kemudian kita convert menggunakan fread, dplyr, data.table, package-package tersebut sudah ada jika kita install R menggunakan anaconda. Hasil dari gabungan data-data tadi menggunakan library “readr” kita satukan. Beberapa pengertian code dapat dilihat dibawah ini:

read.csv("...") #untuk membaca data dengan ekstensi file .csv
head() #untuk melihat data yang paling atas
tail() #untuk melihat data yang paling bawah
dim() #untuk melihat dimensi dari data
str() #untuk melihat struktur dari data
Data hasil gabungan

Pada masing-masing data hasil gabungan, terdapat satu kolom yang berubah namanya, yaitu pada kolom “ï..SIM_AGE”. Hal ini ditengarahi oleh penomoran pada kolom yang ikut digabung. Kita bisa edit manual nama ini dengan excel atau bisa juga menggunakan R langsung, yaitu dengan code

setnames(old=c("nama kolom yang ingin dirubah), new=c("nama kolom baru"))
Mengganti nama kolom SIM_AGE

Pada package dplyr terdapat operator yang memudahkan kita untuk melakukan perhitungan. Operator/syntax tersebut bernama pipe yang dalam R berupa symbol “%>%”. Secara sederhana operator “%>%” menggantikan kata-kata “kemudian/then”. Secara matematis penjelasan operator pipe dapat dilihat pada gambar di bawah ini.

Penjelasan operator pipe secara matematis

Apa selanjutnya?

Dari sini kita bisa melakukan apapun yang kita kehendaki dari data kita. Misalnya saja yang ingin menghitung rata-rata variabel pertumbuhan pohon yang ada (dbh, tinggi, kedalaman tajuk, jari-jari tajuk). Akan tetapi rata-rata yang kita inginkan berdasarkan spesies dan umur simulasi saja. Code yang digunakan sebagai berikut:

~ select() #memilih kolom yang akan dihitung
~ group_by() #memilih kolom yang digunakan sebagai label
~ summarise_at(vars(kolom yang dihitung),
funs(mean), na.rm = TRUE) #menghitung rata-rata

Hasilnya seperti yang nampak pada gambar dibawah ini.

Menggunakan package dplyr dan tidyr

Kita juga bisa melihat rata-rata dbh saja dan kemudian kita transform tabel untuk melihat data kita lebih ciamik.

Penutup

Begitulah kira-kira yang dapat dilakukan menggunkan R untuk membantu pekerjaan kita di bidang kehutanan. Mungkin pada postingan kali ini tidak mendetail penjelasannya, karena tujuannya memang hanya memberikan gambaran sahaja. Untuk lebih jelasnya bisa searching lebih detail di google saja. Pada postingan selanjutnya, mungkin saya akan menunjukan perhitungan yang lebih detail menggunakan R misal untuk regresi non-linier, mengelola grafik, RQDA (Qualitative Data Analysis) dan mungkin NLTK (Natural Language Toolkit), TensorFlow atau k-means clustering menggunakan python.

Berikut saya sertakan kode R-nya secara full beserta beberapa preview hasilnya menggunakan Jupyter Notebook. Akhir kata semangat mencoba, jangan lelah untuk belajar sampai ajal menjemput…

Cukup Sekiyan dan Terima Nasib!!!

Kode dan beberapa hasil preview kode menggunakan jupyter notebook

--

--