https://www.tutorialspoint.com/r/r_variables.htm
변수
변수는 변수명을 통해 프로그램에서 데이터를 조작할 수 있도록 한다. 변수를 통하여 여러가지 자료구조를(atomic vector, vector, R-Object들의 여러가지 조합) 저장할 수 있다. 변수명에는 숫자, 문자, ., _가 포함될 수 있으며, 문자 또는 .을 첫글자로 하여야 한다. 단 .를 첫글자로 할 때는 .뒤에 숫자가 오면 안된다. 아래의 예를 참고하라.
변수 할당
# Assignment using equal operator. var.1 = c(0,1,2,3) # Assignment using leftward operator. var.2 <- c("learn","R") # Assignment using rightward operator. c(TRUE,1) -> var.3 print(var.1) cat ("var.1 is ", var.1 ,"\n") cat ("var.2 is ", var.2 ,"\n") cat ("var.3 is ", var.3 ,"\n")
변수할당은 = 또는 <-, -> 을 통해 할 수 있다. 또한 출력은 print(), cat()을 통해 할 수 있다. cat() 함수는 여러개의 인풋을 합쳐서 프린트한다.
결과
[1] 0 1 2 3 var.1 is 0 1 2 3 var.2 is learn R var.3 is 1 1
변수들의 데이터 타입
R에서 변수의 데이터 타입은 변수에 할당되는 R-Object의 데이터 타입을 따른다. 그래서 R을 동적인 언어(dynamically typed language)라고 부른다. R에서는 변수의 데이터 타입이 하나에 고정되는 것이 아니라 계속해서 바꿀 수 있다.
var_x <- "Hello" cat("The class of var_x is ",class(var_x),"\n") var_x <- 34.5 cat(" Now the class of var_x is ",class(var_x),"\n") var_x <- 27L cat(" Next the class of var_x becomes ",class(var_x),"\n")
The class of var_x is character Now the class of var_x is numeric Next the class of var_x becomes integer
변수 찾기
현재 사용되고 있는 변수들의 목록을 보기 위해서는 ls() 함수를 이용한다. 또한 ls() 함수는 변수를 찾기 위해 '패턴'을 이용할 수도 있다.
print(ls())
[1] "my var" "my_new_var" "my_var" "var.1" [5] "var.2" "var.3" "var.name" "var_name2." [9] "var_x" "varname"
# List the variables starting with the pattern "var". print(ls(pattern = "var"))
[1] "my var" "my_new_var" "my_var" "var.1" [5] "var.2" "var.3" "var.name" "var_name2." [9] "var_x" "varname"
주의할 점은 .으로 시작하는 변수들은 hidden 이다. 이것을 보기 위해서는 아래와 같이 all.name 파라미터를 TRUE로 설정한다.
print(ls(all.name = TRUE))
변수 삭제
변수는 rm() 함수를 사용해 지울 수 있다.
rm(var.3) print(var.3)
위의 스크립트를 실행시키면 var.3 변수를 삭제시키고 두 번째 줄에서는 에러가 뜬다.
rm(list = ls())
print(ls())
모든 변수를 지우고 싶으면 rm()과 ls()를 위와 같이 결합한다.
'Tools > R' 카테고리의 다른 글
R - (6) 반복문 (0) | 2017.02.17 |
---|---|
R - (5) If, else if, switch (0) | 2017.02.15 |
R - (4) 연산자 (0) | 2017.02.15 |
R - (2) R의 데이터 타입 (자료구조) (0) | 2017.02.13 |
R - (1) Introduction (0) | 2017.02.13 |