더북(TheBook)

다행히 dplyr에서 제공하는 이러한 함수는 의미나 용도가 크게 달라지지 않고 오히려 일반화된다. 따라서 이러한 함수들은 마스킹된 버전과 함께 호환이 가능하다. 마스크된 함수를 더 이상 사용할 수 없다고 걱정하지 않아도 된다.

기본 함수들을 마스크하는 패키지 함수는 이것을 단순히 대체하기보다는 거의 기존 함수를 일반화한다. 하지만 동일한 이름을 공유하는 함수를 가진 패키지 2개를 사용해야 한다면 두 패키지를 첨부하는 대신, 다음과 같이 두 패키지에서 필요한 함수를 추출하는 편이 더 낫다.

fun1 <- package1::some_function
fun2 <- package2::some_function

어떤 패키지를 첨부했다가 다시 취소하고 싶다면 unloadNamespace() 함수를 사용한다. 예를 들어 moments 패키지를 첨부했다 다음과 같이 다시 취소할 수 있다.

> unloadNamespace("moments")

패키지를 취소하면 패키지 함수는 더 이상 사용할 수 없다.

> skewness(c(1, 2, 3, 2, 1))
Error in skewness(c(1, 2, 3, 2, 1)) : could not find function "skewness"

물론 여전히 ::을 사용하여 함수는 호출할 수 있다.

> moments::skewness(c(1, 2, 3, 2, 1))
[1] 0.3436216
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.