티스토리 뷰

반응형



stringr 패키지 

  • 문자열은 R의 매력적인 요소는 아니지만 데이터 정리 및 준비 작업에서 큰 역할을 합니다. stringr 패키지는 문자열을 가능한 한 쉽게 처리하도록 설계 함수 세트를 제공합니다. 문자열에 익숙하지 않다면 R 데이터 과학 장의 문자열에 대한 장을 추천합니다.

  • 본 포스트는 rstudio 에서 제공하는 stringr 패키지 cheetsheet 에 나오는 내용을 바탕으로 구성하였습니다.



설치 및 사용법 

  • 위에서도 설명했던 것 처럼 stringr 패키지는 tidyverse 패키지의 일부 입니다. 따라서 tidyverse 패키지 전체를 설치하셔도 되고 stringr 패키지만 따로 설치하셔도 됩니다. 이후에 사용할 때도 tidyverse 패키지를 불러와도 되고 stringr 패키지만 불러와도 됩니다.



패턴 찾기 

  • stringr 패키지에서 패턴을 찾는 메소드는 4종류가 있습니다. str_detect, str_count, str_which, str_locate 입니다. 이 메소드들에 포함되는 parameter 중 pattern 은 정규식을 의미합니다.

  • str_detect 메소드는 string 중에 해당 정규식에 맞는 문자열이 존재하는지를 T,F 로 반환하는 메소드 입니다.

  • str_count 메소드는 string 중에 해당 정규식에 맞는 문자열이 총 몇개 존재하는지 반환하는 메소드 입니다.

  • str_which 메소드는 string 중에 해당 정규식에 맞는 문자열이 문자열 벡터 중에서 몇 번째 있는지 반환합니다. 만약 해당 패턴이 없는 경우는 아무것도 반환하지 않습니다. 예시의 그림에서는 4개의 값으로 구성된 벡터 중에 1, 2, 4번째 값에 해당 문자열이 있다는 것을 보여줍니다.

  • str_locate 메소드는 string 중에 해당 정규식에 맞는 문자열의 시작점과 종료지점을 반환하는 메소드 입니다.



부분집합 찾기 

  • stringr 에서 문자열에서 부분을 반환하는 함수들은 5가지 정도가 있습니다.

  • str_sub 메소드는 문자열 중 지정된 시작점과 종료지점에 해당하는 문자열을 반환하는 함수입니다.

  • str_subset 메소드는 string 중에서 해당 패턴을 갖고 있는 문자열들을 반환하는 함수입니다. 다른 메소드 같은 경우는 패턴에 맞는 부분만 반환하지만 str_subset 메소드는 패턴이 있는 문자열 자체들을 반환합니다.

  • str_extract 와 str_match, str_match_all 메소드는 string 중 해당 패턴을 추출하는 메소드 입니다만 str_extract 와 str_match 간에는 vertor 와 matrix 로 반환한다는 차이점이 있습니다.

  • 또한 str_match 와 str_match_all 함수 간에는 첫 번째 패턴만 찾는지 전체 패턴을 찾는지 차이가 있습니다.



문자열 변형하기 


  • str_sub 메소드는 부분집합 찾기에서 살펴본 메소드 입니다. 그런데 str_sub 메소드를 다음과 같이 사용하면 문자열을 변형할 때 사용할 수 있습니다.

  • str_sub (fruit, start, end) <- replace . 다른 함수들과 다르게 str_sub 에 값을 지정해주면 원래 변수 자체가 변화해버리니 주의 하셔야합니다.

  • str_replace 메소드는 string 내에서 지정한 문자열을 찾아 다른 문자열로 변환하는 메소드 입니다. replace 같은 경우는 왼쪽부터 시작해서 처음 보이는 문자를 변경합니다.

  • str_replace_all 메소드는 str_replace 와 같지만 문자열 전체의 지정문자열을 변경합니다.


  • str_to_lower, str_to_upper, str_to_title 은 영문자의 대문자 소문자를 변경하는 함수입니다. lower 는 전체 문자를 소문자로, upper 는 전체 문자를 대문자로, title 은 첫문자는 대문자로 나머지는 소문자로 변경하는 함수입니다.



합치고 분할하기 

  • stringr 에서 문자열들을 합치기 위한 메소드는 str_c 와 str_dup 메소드가 있습니다. 이 중 str_c 는 collapse 값에 따라 완전 다른 형태로 사용됩니다.

  • collapse 는 (공간을 덜 차지하도록) 접다 라는 뜻을 가지고 있습니다. 그래서인지 collapse 값을 NULL 로 했을 경우에는 지정한 문자열들만 하나로 만들지만 collapse 값을 NULL 이 아닌 다른 값으로 지정할 경우에는 모든 행을 하나의 값으로 합치는 결과를 얻을 수 있습니다. 

  • sep 파라메터는 행간이 아닌 여러 지정 문자열을 하나로 만드는 과정에서의 구분자 입니다.

  • 다음처럼 collapse 값에 따라 str_c 는 다른 메소드처럼 사용가능합니다. NULL 일 때는 "a b" 가 4개 있는 것을 반환하지만 collapse 값을 " " 로 지정하면 "a b a b a b a b" 를 반환합니다.

  • str_split 함수와 str_split_fixed 는 동일한 기능을 수행하지만 반환형식이 다른 메소드 입니다. str_split 은 문자열을 지정패턴을 기준으로 몇개로 split 할지 정하는 메소드입니다. 

  • 당연히 n = 1 로 지정해놓으면 분할하지 않습니다. 또한 n 이 너무 커도 그에 맞춰 분할할 수 없습니다. 

  • pear 의 경우 a 를 기준으로 분할하면 pe 와 r 로 분할할 수 있는데 n 을 3 으로 하면 pe 와 r 그리고 "" 을 반환합니다.



길이에 대한 메소드 


  • 길이를 다루는 함수는 생각보다 자주 사용합니다. 그 중 가장 기본적인 문자열의 길이를 확인하는 함수는 str_length 입니다. string 의 길이를 반환합니다.

  • str_pad는 문자열을 지정한 길이에 맞게 만드는 메소드 입니다. pad 에 지정한 값을 side 에 맞춰 길이에 맞게 채워주는 함수 입니다.

  • str_trunc 는 문자열이 지정한 길이보다 길 경우에 side 에 맞게 ellipsis 로 값을 변환해서 지정한 길이에 맞게 변환하는 함수 입니다. 예를 들어 "banana" 라는 값을 str_trunc("banana",5) 라고 실행해보면 ba... 라는 값을 얻을 수 있습니다. 일단 5개의 길이에 맞게 banan 로 자른 뒤 ellipsis 기본값인 "..." 을 우측에서부터 치환해준 결과입니다.



문자열 순서 다루기 

  • 순서를 다루는 메소드는 str_order 과 str_sort 두 가지가 있습니다. str_order 는 순서를 반환하는 메소드이며 sort 는 직접 정렬하는 메소드 입니다. 

  • 두 메소드의 parameter 가 같으니 하나씩 살펴보겠습니다.

  • decreasing 은 내림차순 오름차순을 결정하는 parameter 입니다.

  • na_list 는 NA 값을 어떻게 할지 결정하는 것입니다. 가장 뒤로 옮길지 말지에 대한 parameter 이지만 변경할 일이 많지 않습니다.

  • numeric 은 다음 예시를 보며 이해해보겠습니다.

  • numeric을 T 로 놓으면 숫자 크기대로 정렬하는 것을 확인할 수 있습니다.

  • 하지만 F 로 지정할 경우에는 사전처럼 정렬하는 것을 알 수 있습니다.







부족한 블로그에 방문해 주셔서 감사합니다.

잘못된 부분이나 질문이 있으시면 

댓글로 말씀해주세요.


금방 확인하고 피드백 드리겠습니다.


좋은 하루 되세요. ^^


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함