Cara mengatasi RStudio – n must only be used inside dplyr verbs

By | October 23, 2021
Print Friendly, PDF & Email
846 Views

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

  1. data()
  2. n()
  3. c()
See also  Passing String sebagai Variabel Kolom di dplyr

merupakan nama function di R, jadi kalian harus hati-hati dalam memberikan nama function agar tidak terjadi bentrok satu sama lain

ref:

https://stackoverflow.com/questions/64012121/summarise-error-n-must-only-be-used-inside-dplyr-verbs?noredirect=1&lq=1

Leave a Reply