카테고리 없음

[R] unused arguments 오류 해결

멋쟁이천재사자 2022. 8. 2. 21:00

1. 문제

dplyr 패키지의 select 함수를 사용하다가 갑자기 오류메시지가 떴습니다.

MASS 패키지에서 제공하는 Boston 데이터를 dplyr 로 가공하는 과정이었습니다.

 

library(dplyr)
library(MASS)
data(Boston)
Boston

Boston %>% mutate(y=rm,x=lstat) %>% select (rm,lstat) %>% head()
Error in select(., rm, lstat) : unused arguments (rm, lstat)

평소 잘 쓰던 기능이 갑자기 Error 를 뿌리니 깜짝 놀랐습니다.

 

 

2. 재현

재현 및 troubleshooting 효율성을 위해 Boston 데이터 부분을 mtcars 로 변경하여 진행해볼께요.

 

library(dplyr)
library(MASS)
mtcars %>% select(mpg,cyl)  %>% head()
Error in select(., mpg, cyl) : unused arguments (mpg, cyl)

 

 

3. 문제 원인

결론부터 말씀드리면 MASS 패키지와 쫑난 것이 문제 원인입니다.

 

좀 더 자세한 원인을 설명하면,

Boston 데이터를 사용하기 위해 로드했던 MASS 패키지에도 select 함수가 있었고,

dplyr 의 select 기능을 기대했던 부분에서 MASS 패키지의 함수가 호출이 되었으며,

해당 함수에서는 불필요한 인자였던 것입니다.

 

 

4. 해결 방법

 

해결방법1: deplyr::select 로 변경하여 사용할 패키지를 명확하게 지정해줌

 

library(dplyr)
library(MASS)
mtcars %>% dplyr::select(mpg,cyl)  %>% head()

 

해결방법2 : 패키지 로드 순서 변경하여 dplyr 이 나중에 로드되도록 합니다.

library(MASS)
library(dplyr)
mtcars %>% select(mpg,cyl)  %>% head()

 

 

 

5. 해결을 위한 시도했던 몇 가지 노력들

 

인자를 " 묶어 주기 즉, select("mpg","cyl")로 보았으나 결과는 동일. 실패

 

 

웹에서 unused arguments 키워드로 검색을 해보았습니다.

https://blog.naver.com/longlife27/222440714153

rm("c") 해서 성공했다고 하여 rm(mpg) rm(cyl) 호출 후 시도. 실패

rm(list=ls()) 호출후 시도 실패

 

다른 검색결과를 보고 성공했습니다.

 

[Study/R오류] dplyr의 select 함수 오류 해결(Unused arguments in select(), 사용되지 않은 인자)

너무 바빠서 미뤄둔 오류 해결 예제들, 이제서야 업로드 합니다...ㅠㅠㅠㅠ # 개인 과제 중 발생했던 오류...

blog.naver.com

위 글을 보고 dplyr::select 를 호출하여 성공했습니다.