Hard skills/R

R - (3) 변수

2017. 2. 15. 01:38

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()를 위와 같이 결합한다.



'Hard skills > R' 카테고리의 다른 글

R - (6) 반복문  (0) 2017.02.17
R - (5) If, else if, switch  (0) 2017.02.15
R - (4) 연산자  (0) 2017.02.15
R - (3) 변수  (0) 2017.02.15
R - (2) R의 데이터 타입 (자료구조)  (0) 2017.02.13
R - (1) Introduction  (0) 2017.02.13