RStudio : `n()` must only be used inside dplyr verbs [duplicate] – Apakah kalian mengalami hal demikian ketika sedang asyik mengolah data di RStudio? Kepopuleran R saat ini dengan berkembangnya data science naik drastis, itu terbukti pada situs stackoverflow.com dengan kata tag R.
Berkembang pesat nya R maka berkembang pula library/package yang ada di repositori CRAN atau di github untuk mempermudah bagi para data science dalam mengolah data. Namun adakalanya penamaan function bentrok satu sama lain alias sama persis nama function dengan beda package! Untuk mengatasi hal tersebut bagaimana?
Package di R
Bahasa R emang unik dalam memanggil package, karena R dibangun atas semangat opensource sehingga kita pun bisa menulis source code ataupun memasang library yang kita butuhkan. Saat ini sudah ribuan package yang tersedia di repository CRAN. Memungkinkan penamaan package tersebut mengandung nama function yang sama dengan satu sama lain! hal inilah yang terjadi ketika terjadi pesan error
RStudio : `n()` must only be used inside dplyr verbs [duplicate]
Misalkan saja, library untuk membaca file excel, kita butuh library openxlsx dengan functionnya read.xlsx(). Secara umum untuk mempersingkat pemanggilan library sebagai berikut
library(openxlsx) dat = read.xlsx('file.xlsx')
Atau misalkan kita butuh banyak library seperti ini
library(moonBook) library(webr) library(shiny) library(shinydashboard) library(dplyr) library(openxlsx) library(ggplot2) library(DT) library(ggcharts) library(shinyFiles) library(lubridate) library(shinybusy) library(RTextTools) library(tm) library(caret) library(plyr)
Bentrok/duplicate nama function menjadi hal lumrah, karena tidak seperti Python yang mempunyai mekanisme pengganti nama alias. Misalkan library numpy bisa dialiaskan menjadi import numpy as np.
Solusi ketika function duplicate
Sebenarnya di R, kalian bisa memanggil function tanpa perlu mekanisme diatas, tapi harus menyebut lengkap nama package diikuti simbol :: nama function. Misalkan seperti berikut
openxlsx::read.xlsx('file.xlsx')
openxlsx::read.xlsx('file.xlsx')
Sehingga ketika terjadi hal RStudio – n() must only be used inside dplyr verbs, itu terjadi bentrok nama function nya untuk hal tersebut kalian gunakan perintah lengkapnya saja
info_train = info_train %>% group_by(kelas) %>% summarise(jumlah=n())
menjadi
info_train = info_train %>% group_by(kelas) %>% dplyr::summarise(jumlah=n())
Saya lihat emang agak aneh sekali di R, misalkan saja function ini
- data()
- n()
- c()
merupakan nama function di R, jadi kalian harus hati-hati dalam memberikan nama function agar tidak terjadi bentrok satu sama lain
ref: