Page 24 -
P. 24

2.1.8 벡터 변환하기


               클래스가 다른 벡터를 특정 클래스의 벡터로 강제 변환할 수 있다. 예를 들어 일부 데이터가 1, 20
               등 숫자를 나타내는 문자열일 때를 생각해 보자. 이러한 문자열은 숫자를 계산할 때처럼 그대로
               사용할 수 없다. 다행히 이 두 문자열은 수치형 벡터로 변환할 수 있으며, 이렇게 해서 R은 이것을

               문자열이 아닌 숫자로 간주하여 수학적 연산을 수행한다.
               간단한 변환 예제를 위해 문자형 벡터를 하나 만들어 보자.


                 > strings <- c("1", "2", "3")
                 > class(strings)
                 [1] "character"

               이미 설명했듯이 이대로는 수학 연산을 할 수 없다.


                 > strings + 10
                 Error in strings + 10 : non-numeric argument to binary operator


               문자형 벡터를 수치형 벡터로 바꾸려면 as.numeric() 함수를 사용한다.

                 > numbers <- as.numeric(strings)
                 > numbers
                 [1] 1 2 3
                 > class(numbers)
                 [1] "numeric"


               이제는 수학 연산을 처리할 수 있다.

                 > numbers + 10
                 [1] 11 12 13

               주어진 벡터의 클래스를 알아보는 is.* 형태의 함수(is.numeric, is.logical, is.character)와 마
               찬가지로 다른 클래스의 벡터로 변환할 때 사용하는 as.* 함수가 있다.


                 > as.numeric(c("1", "2", "3", "a"))
                 [1] 1 2 3 NA
                 Warning message:
                 NAs introduced by coercion
                 > as.logical(c(-1, 0, 1, 2))
                 [1] TRUE FALSE TRUE TRUE
                 > as.character(c(1, 2, 3))


         58





     r교과서_07.indd   58                                                                       2020-04-09   오후 4:21:24
   19   20   21   22   23   24   25   26   27   28   29