rm()으로 원하는 변수만 메모리에서 제거하기
안녕하세요? 알마스터입니다.
얼마전에 이런 질문이 들어왔습니다.
"원하는 이름의 변수만 어떻게 지우나요? 예를 들어 temp.로 시작하는 변수만 다 지우고 싶어요."
제가 입버릇처럼 말하는 '생각보다 쉬워요..'라고 하며 설명을 드렸다가... 블친님들께서도 궁금해 하실 것 같아 글을 씁니다.
먼저 복습.
이것을 조금 응용하면 정규식을 써서 패턴이 일치되는 것만 지울 수 있습니다.
stringr 패키지의 str_detect()함수는 주어진 문자열에서 정규식을 만족시키는 것을 TRUE로, 그렇지 않은 것을 FALSE로 반환합니다.
생각보다 쉽죠?
얼마전에 이런 질문이 들어왔습니다.
"원하는 이름의 변수만 어떻게 지우나요? 예를 들어 temp.로 시작하는 변수만 다 지우고 싶어요."
제가 입버릇처럼 말하는 '생각보다 쉬워요..'라고 하며 설명을 드렸다가... 블친님들께서도 궁금해 하실 것 같아 글을 씁니다.
먼저 복습.
> ls() #변수의 이름을 보여줍니다.
> rm() #변수를 지웁니다.
> rm(list=) #지울 변수의 목록을 지정합니다.
> rm(list=ls()) #이러면 지금 메모리에 올라와 있는 것은 다 지웁니다.
이것을 조금 응용하면 정규식을 써서 패턴이 일치되는 것만 지울 수 있습니다.
> rm(list=ls()[stringr::str_detect(ls(),"^temp\\.")])
stringr 패키지의 str_detect()함수는 주어진 문자열에서 정규식을 만족시키는 것을 TRUE로, 그렇지 않은 것을 FALSE로 반환합니다.
생각보다 쉽죠?
댓글
댓글 쓰기