[R] 문자열 (character, is.character, as.character 등)

 

 

✔︎ 문자열 지정하는 두 가지 방법

 1) x <- character()

 2) y <- ""

 * 두 방법은 길이가 다르게 지정됨

x <- character()
y <- ""

# 결과
> class(x)
[1] "character"

> class(y)
[1] "character"

> length(x)
[1] 0

> length(y)
[1] 1

 

 

✔︎ 문자열 지정 - 나중에 data 추가 가능

 - 문자열 지정 후 나중에 data값 입력 가능

 - 기존 지정된 범위(아래 예시에서는 5개) 밖에 data 지정 가능 (중간 빈 값 NA로 나옴)

 - 중간 빈 값에도 data 입력 가능

z <- c("a","1","100")
> z
[1] "a"   "1"   "100"

z <- character(5)
> z
 [1] "" "" "" "" ""

> length(z)
[1] 5

z[3] <- "3rd"
> z
 [1] ""    ""    "3rd" ""    "" 
 
z[7] <- "7th"
> z
 [1] ""     ""     "3rd"  ""     ""     NA     "7th"
 
z[6] <- "6"
> z
 [1] ""     ""     "3rd"  ""     ""    "6"   "7th" 
 
> length(z)
[1] 7

 

 

✔︎ 문자열 여부 확인 및 변경

 - is.character() : 문자 여부 확인

 - as.character() : 숫자를 일시적으로 문자로 바꿔줌

   * 만약 문자로 바꾸고 싶으면 다른 변수로 지정    

n=3
m="3"

is.character(n)
[1] FALSE

is.character(m)
[1] TRUE
 
as.character(n)
[1] "3"

class(n)
[1] "numeric"

n2 <- as.character(n)
class(n2)
[1] "character"

 

 

✔︎ 문자열 지정 - 문자 추가되면 문자로 인식

 - 숫자로만 구성되었더라도 문자가 추가되면 문자로 인식

 - TRUE(=1), FALSE(=0)는 숫자로 인식

t <- c(1:2)
t2 <- c(1:2,"a")
t3 <- c(1:2,TRUE,FALSE)
t4 <- c(1:2,TRUE,FALSE,"a")

# 결과
> t
[1] 1 2

> t2
[1] "1" "2" "a"

> t3
[1] 1 2 1 0

> t4
[1] "1"     "2"     "TRUE"  "FALSE" "a"

 

 

✔︎ 데이터프레임 - 문자 추가되면 문자로 인식

 - 같은 벡터는 같은 형식으로 구성

 - 숫자로만 구성되었더라도 문자가 추가되면 문자로 인식

df1 <- data.frame(n=c(1:3),letters=c("a","b","11"))
df2 <- data.frame(n=c(1:2,"c"),letters=c("a","b","11"))

# 결과
> str(df1)
'data.frame':	3 obs. of  2 variables:
 $ n      : int  1 2 3
 $ letters: chr  "a" "b" "11"
 
> df2 <- data.frame(n=c(1:2,"c"),letters=c("a","b","11"))
> str(df2)
'data.frame':	3 obs. of  2 variables:
 $ n      : chr  "1" "2" "c"
 $ letters: chr  "a" "b" "11"