3.1 유용한 문자열 관련 함수

3.1.1 nchar()

  • 인간이 눈으로 읽을 수 있는 문자의 개수(길이)를 반환
  • 공백, 줄바꿈 표시자(예: \n)도 하나의 문자 개수로 인식
  • 한글의 한 글자는 2 바이트(byte)지만 한 글자로 인식 \(\rightarrow\) byte 단위 반환 가능
  • 예시
[1] 36
[1] 11
[1] 12
 [1] 42 43 38 40 36 37 43 43 35 40
[1]  3  3  6 14  3
[1]  3  6  6 14  3
[1]  3  6  6 14  3
백터의 원소 개수를 반환하는 length() 함수와는 다름.

3.1.2 paste(), paste0()

  • 하나 이상의 문자열을 연결하여 하나의 문자열로 만들어주는 함수
  • Excel의 문자열 연결자인 &와 거의 동일한 기능을 수행
  • paste0()paste()의 wrapper 함수이고 paste()의 구분자 인수 sep = "" 일 때와 동일한 결과 반환
  • 예시
 [1] "a 1"  "b 2"  "c 3"  "d 4"  "e 5"  "f 6"  "g 7"  "h 8"  "i 9"  "j 10"
[11] "k 11" "l 12" "m 13" "n 14" "o 15" "p 16" "q 17" "r 18" "s 19" "t 20"
[21] "u 21" "v 22" "w 23" "x 24" "y 25" "z 26"
 [1] "a_1"  "b_2"  "c_3"  "d_4"  "e_5"  "f_6"  "g_7"  "h_8"  "i_9"  "j_10"
[11] "k_11" "l_12" "m_13" "n_14" "o_15" "p_16" "q_17" "r_18" "s_19" "t_20"
[21] "u_21" "v_22" "w_23" "x_24" "y_25" "z_26"
 [1] "a1"  "b2"  "c3"  "d4"  "e5"  "f6"  "g7"  "h8"  "i9"  "j10" "k11" "l12"
[13] "m13" "n14" "o15" "p16" "q17" "r18" "s19" "t20" "u21" "v22" "w23" "x24"
[25] "y25" "z26"
[1] "abcdefghijklmnopqrstuvwxyz"
The birch canoe slid on the smooth planks.
Glue the sheet to the dark blue background.
It's easy to tell the depth of a well.
These days a chicken leg is a rare dish.
Rice is often served in round bowls.
The juice of lemons makes fine punch.
The box was thrown beside the parked truck.
The hogs were fed chopped corn and garbage.
Four hours of steady work faced us.
Large size in stockings is hard to sell.
[1] "Col 1 TRUE<->Col 2 FALSE<->Col 1 TRUE"
[1] "lm(mpg ~ disp , data = mtcars)" "lm(mpg ~ hp , data = mtcars)"  
[3] "lm(mpg ~ drat , data = mtcars)"
                   [,1]        [,2]      [,3]
(Intercept) 29.59985476 30.09886054 -7.524618
disp        -0.04121512 -0.06822828  7.678233

3.1.3 sprintf()

  • C 언어의 sprintf() 함수와 동일하며 특정 변수들의 값을 이용해 문자열을 반환함
  • 수치형 값의 소숫점 자리수를 맞추거나 할 때 유용하게 사용
  • 포맷팅 문자열을 통해 수치형의 자릿수를 지정 뿐 아니라 전체 문자열의 길이 및 정렬 가능
  • 대표적인 포맷팅 문자열은 아래 표와 같음.
Format 설명
%s 문자열
%d 정수형
%f 부동 소수점 수
%e, %E 지수형
  • 예시
[1] 7
[1] 3.141593
[1] "3.141593"
[1] "3.142"
[1] "3"
[1] "  3.1"
[1] 5
[1] "003.1"
[1] "+3.141593"
[1] "-3.141593"
[1] " 3.141593"
[1] "3.142     "
Error in sprintf("%d", pi): '%d'는 유효하지 않은 포맷입니다; 수치형 객체들에는 포맷 %f, %e, %g 또는 %a를 사용해 주세요
[1] "100"
[1] "20"
[1] "3.141593e+00"
[1] "3.141593E+00"
[1] "3.14E+00"
[1] "Mean = 3.14"
speed: 15.40 ± 5.29
dist: 42.98 ± 25.77

3.1.4 substr()

  • 문자열에서 특정 부분을 추출하는 함수
  • 보통 한 문자열이 주어졌을 때 start에서 end 까지 추출
  • 예시
[1] "정보통계학과"
 [1] "birch canoe" " the sheet " " easy to te" "e days a ch" " is often s"
 [6] "juice of le" "box was thr" "hogs were f" " hours of s" "e size in s"

3.1.5 tolower(), toupper()

  • 대문자를 소문자(tolower()) 혹은 소문자를 대문자(toupper())로 변환
 [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
[20] "T" "U" "V" "W" "X" "Y" "Z"
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
 [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
[20] "T" "U" "V" "W" "X" "Y" "Z"