컴퓨터/R

R - 전역변수 / 지역변수

해피밀세트 2020. 4. 15. 18:13

 

 

 

# 현재 만들어져있는 생성자들 확인 (파이썬에서는 dir)

ls()

 

# 생성자 삭제

rm(생성자 이름)

 

# 생성자 전부 삭제

rm(list=ls())

 


전역변수(global variable)

  • 프로그램(세션이 열려 있는 동안에) 전체에서 사용할 있는 변수
  • 함수에 상관없이 프로그램 전체에서 사용할 있는 변수

 

지역변수(private variable, local variable)

  • 함수내에서 정의되고 사용할 있는 변수

# 전역변수

x<-1;y<-2;z<-3

ls()

# 여기서 y 잠깐 지역변수가 된다.
# 전역변수랑 지역변수 이름을 같게하지 말자

f <- function(arg1){

  y <- arg1 * 10

  print(x);print(y);print(z)

}

f(10)

print(x);print(y);print(z)

# 1. 함수내에서 변수를 찾고 2. 없으면 바깥쪽에서 찾는다.

rm(list=ls())

f <- function(arg1){

  y <- arg1 * 10

  print(x);print(y);print(z)

}

f(10)

print(x);print(y);print(z)

 

 

# 함수내에서 지역변수를 사용하는 할당연산자?

<-, =

# 함수내에서 전역변수를 사용하는 할당연산자?

<<-

# 로컬변수를 전역변수로 쓰고 싶을때 <<-  사용

rm(list=ls())

x<-1;z<-3

f <- function(arg1){

  y <<- arg1 * 10

  print(x);print(y);print(z)

}

f(10)

print(x);print(y);print(z)

# 함수안에서 전역변수에 영향을 주려면 <<- 사용한다.

rm(list=ls())

x<-1;y<-2;z<-3

f <- function(arg1){

  y <<- arg1 * 10

  print(x);print(y);print(z)

}

f(10)

print(x);print(y);print(z)

# = 사용하면 안됨

rm(list=ls())

x<-1;z<-3

f <- function(arg1){

  y = arg1 * 10

  print(x);print(y);print(z)

}

f(10)

print(x);print(y);print(z)

sum(x1 <- c(1,2,3,4,5))
x1

sum(x2 <<- c(1,2,3,4,5))

x2

 

sum(x2 = c(1,2,3,4,5))

x3

반응형

'컴퓨터 > R' 카테고리의 다른 글

R - subset / ddply  (0) 2020.04.16
R - merge  (0) 2020.04.15
R - 함수  (0) 2020.04.15
R - 반복문  (0) 2020.04.14
R - 조건 제어문  (0) 2020.04.13