1. 학습
  2. /
  3. 강의
  4. /
  5. R 중급

Connected

연습 문제

R은 인수를 값으로 전달합니다

제목에서 이미 힌트를 드렸죠: R은 인수를 값으로 전달합니다. 무슨 뜻일까요? 간단히 말해, 어떤 함수를 호출할 때 입력한 변수를 그 함수가 바꿀 수 없다는 의미예요. 간단한 예를 볼까요(콘솔에서 직접 실행해 보세요):

triple <- function(x) {
  x <- 3*x
  x
}
a <- 5
triple(a)
a

triple() 함수 내부에서 인수 x는 자신의 값에 3을 곱한 값으로 덮어씌워집니다. 이후 이 새로운 x가 반환되죠. 만약 변수 a가 5일 때 이 함수를 호출하면 15를 얻습니다. 그런데 a의 값도 바뀌었을까요? R이 a를 triple()에 참조로(by reference) 전달했다면, 함수 내부에서 x를 덮어쓴 것이 함수 밖의 변수 a에도 영향을 미쳤을 거예요. 하지만 R은 값을 복사해서 전달(by value)하므로, 함수에 전달한 R 객체는 여러분이 명시적으로 할당하지 않는 한 바뀌지 않습니다. triple(a)를 호출한 뒤에도 a는 여전히 5입니다.

다음 코드에 대해 아래 진술 중 어떤 것이 거짓인지 맞혀 보세요.

increment <- function(x, inc = 1) {
  x <- x + inc
  x
}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)

지침

50 XP

가능한 답변