๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Programming/R

๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•

R์˜ ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜์™€ stringr ํŒจํ‚ค์ง€๋ฅผ ํ™œํ•˜์—ฌ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

 

โ–ก ๋ฌธ์ž ์ด์–ด ๋ถ™์ด๊ธฐ

 

 In:

paste('Rooney', 'Song', sep = '_')
paste0('Rooney', 'Song')

str_c('Rooney', 'Song', sep = '_')

 

Out:

[1] "Rooney_Song"

[1] "RooneySong"

[1] "Rooney_Song"

 

โ–ท paste, paste0 ํ•จ์ˆ˜๋Š” ๋‘ ๋ฌธ์ž์—ด์„ ๋ถ™์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๋‘ ํ•จ์ˆ˜์˜ ์ฐจ์ด์ ์€ paste0 ํ•จ์ˆ˜๋Š” ๋ถ™์ผ ๋•Œ, ์‚ฌ์ด์— ๋ฌธ์ž๋ฅผ ์‚ฝ์ž…ํ•˜์ง€ ์•Š๊ณ , ๋ฐ”๋กœ ๋ถ™์ธ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. paste ํ•จ์ˆ˜์˜ sep ์ธ์ž๋ฅผ ํ†ตํ•ด ๋‘ ๋ฌธ์ž์—ด์„ ๋ถ™์ผ ๋•Œ, ์‚ฌ์ด์— ๋“ค์–ด๊ฐˆ ๋ฌธ์ž๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โ–ท str_c ํ•จ์ˆ˜๋Š” stringr ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ํ•จ์ˆ˜๋กœ, paste ํ•จ์ˆ˜์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.

 

โ–ก ๊ธ€์ž ๊ฐœ์ˆ˜ ์„ธ๊ธฐ

 

In:

nchar('Rooney')

str_length('Rooney')

 

Out:

[1] 6

[1] 6

 

โ–ท nchar, str_length ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž ๊ฐœ์ˆ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. str_length ํ•จ์ˆ˜๋Š” stringr ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ํ•จ์ˆ˜์ด๋‹ค.

 

โ–ก ์†Œ๋ฌธ์ž ๋ณ€ํ™˜

 

In:

tolower('Rooney')

 

Out:

[1] "rooney"

 

โ–ท tolower ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์— ํฌํ•จ๋œ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ค€๋‹ค.

 

โ–ก ๋Œ€๋ฌธ์ž ๋ณ€ํ™˜

 

In:

toupper('Rooney')

 

Out:

[1] "ROONEY"

 

โ–ท toupper ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์— ํฌํ•จ๋œ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ค€๋‹ค.

 

โ–ก ๊ณต๋ฐฑ ์—†์• ๊ธฐ

 

In:

str_trim(' Rooney Song ')

 

Out:

[1] "Rooney Song"

 

โ–ท stringr ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ str_trim ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์˜ ์•ž๊ณผ ๋’ค์— ํฌํ•จ๋œ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•˜์—ฌ ์ค€๋‹ค.

 

โ–ก ๋ถ€๋ถ„ ์ถ”์ถœ

 

In:

substr('Rooney', 1, 3)

str_sub('Rooney', 1, 3)

 

Out:

[1] "Roo"

[1] "Roo"

 

โ–ท substr, str_sub ํ•จ์ˆ˜๋Š” ๋‘ ๋ฒˆ์งธ ์ธ์ž ๋ถ€๋ถ„์„ ์‹œ์ž‘์œผ๋กœ ์„ธ ๋ฒˆ์งธ ์ธ์ž ๋ถ€๋ถ„์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ์ถ”์ถœํ•˜์—ฌ ์ค€๋‹ค. str_sub ํ•จ์ˆ˜๋Š” stringr ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

 

โ–ก ํŠน์ • ์œ„์น˜ ๊ฐ’ ๋ณ€๊ฒฝ

 

In:

char_1 = 'Rooney'
char_2 = 'Song'

substr(char_1, 1, 2) = 'SKY'
print(char_1)

str_sub(char_2, 1, 2) = 'SKY'
print(char_2)

 

Out:

[1] "SKoney"

[1] "SKYng"

 

โ–ท substr ํ•จ์ˆ˜์˜ ์ถ”์ถœ ๋ฒ”์œ„์— ๋‹ค๋ฅธ ๊ฐ’์„ ํ• ๋‹นํ•˜์—ฌ ํ•ด๋‹น ๋ฒ”์œ„์˜ ๋ฌธ์ž๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, ํ•ด๋‹น ๋ฒ”์œ„์˜ ๊ธธ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๋ฌธ์ž๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐ˜๋ฉด stringr ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ str_sub ํ•จ์ˆ˜๋Š” ์ถ”์ถœ ๋ฒ”์œ„์— ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์„ ํ• ๋‹นํ•˜์—ฌ ๋ฐ”๊ฟ€ ๋•Œ, ๋ฒ”์œ„์˜ ๊ธธ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๋ถ€๋ถ„๊นŒ์ง€ ๋ฐ˜์˜๋œ๋‹ค.

 

โ–ก ํŠน์ • ํŒจํ„ด ๊ธฐ์ค€์œผ๋กœ ์ž๋ฅด๊ธฐ

 

In:

strsplit('Rooney Song', ' ')

str_split('Rooney Song', ' ')

str_split('Rooney Song', ' ', simplify = T)

 

Out:

[[1]]
[1] "Rooney" "Song"  

[[1]]
[1] "Rooney" "Song"  

     [,1]     [,2]  
[1,] "Rooney" "Song"

 

โ–ท strsplit ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ์ฃผ์–ด์ง„ ํŒจํ„ด์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ์ž๋ฅผ ์ˆ˜ ์žˆ๋‹ค. stringr ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ str_split ํ•จ์ˆ˜๋„ ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด๋•Œ, simplify ์ธ์ž๋ฅผ True๋กœ ์„ค์ •ํ•  ๊ฒฝ์šฐ, ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ, ํ–‰๋ ฌ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

 

โ–ก ํŠน์ • ํŒจํ„ด์ด ํฌํ•จ๋œ ๋ฌธ์ž์—ด ์ฐพ๊ธฐ

 

In:

grep('o', c('Song Kiyoung', 'Pep', 'Joanna'))

grepl('o', c('Song Kiyoung', 'Pep', 'Joanna'))

 

Out:

[1] 1 3

[1]  TRUE FALSE  TRUE

 

โ–ท grep ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ž์— ํ•ด๋‹นํ•˜๋Š” ํŒจํ„ด์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„์ค€๋‹ค. ๋ฐ˜๋ฉด, grepl ํ•จ์ˆ˜๋Š” ํŒจํ„ด๊ณผ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

โ–ก ํŠน์ • ํŒจํ„ด์„ ์ฐพ์•„์„œ ๋‹ค๋ฅธ ํŒจํ„ด์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

 

In:

sub('o', 'u', 'Rooney')

gsub('o', 'u', 'Rooney')

str_replace('Rooney', 'o', 'u')

str_replace_all('Rooney', 'o', 'u')

 

Out:

[1] "Ruoney"

[1] "Ruuney"

[1] "Ruoney"

[1] "Ruuney"

 

โ–ท sub ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ž์— ํ•ด๋‹นํ•˜๋Š” ํŒจํ„ด์„ ๋‘ ๋ฒˆ์งธ ์ธ์ž์˜ ํŒจํ„ด์œผ๋กœ ๋ฐ”๊พธ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ณผ์ •์€ ํ•œ ๋ฒˆ ๋ฐ–์— ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰ ๊ฐ€์žฅ ๋จผ์ € ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž์—ด๋งŒ ๋ฐ”๊พธ์–ด ์ค€๋‹ค. ๋ฐ˜๋ฉด, gsub ํ•จ์ˆ˜๋Š” ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ๋ฐ”๊พผ๋‹ค.

 

โ–ท stringr ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ str_replace, str_replace_all ํ•จ์ˆ˜๋Š” sub, gsub ํ•จ์ˆ˜์˜ ์—ญํ• ๊ณผ ์ผ์น˜ํ•œ๋‹ค.