시작하기무료로 시작하기

내 타입은 무엇일까요?

방금 어떤 변수 유형을 다루는지 확인하는 데 도움이 되는 네 가지 함수를 살펴봤어요. class()(docs)와 typeof()(docs)는 중요하며 자주 유용하게 쓰여요. mode()(docs)와 storage.mode()(docs)는 주로 S 프로그래밍 언어와의 호환성을 위해 존재해요.

이번 연습 문제에서는 서로 다른 변수 유형에 대해 이 함수들이 무엇을 반환하는지 살펴봅니다. 아직 접해 보지 못했을 법한 드문 타입도 있어요.

  • array(docs): 임의의 차원 수를 가진 행렬의 일반화입니다.
  • formula(docs): 모델링 및 시각화 함수에서 변수 간 관계를 정의하는 데 사용합니다.

또한 R에는 세 가지 종류의 함수가 있다는 점도 알아두세요.

  • 여러분이 가장 흔히 접하는 함수는 closure라고 불립니다.
  • length()(docs)처럼 몇몇 중요한 함수는 builtin 함수로, 더 빠르게 실행되도록 특별한 평가 메커니즘을 사용해요.
  • if(docs)와 while(docs) 같은 언어 구성 요소도 함수입니다! 이런 함수는 special 함수라고 불려요.

이 연습은 강의의 일부입니다

R에서 S3와 R6로 배우는 Object-Oriented Programming

강의 보기

연습 안내

type_info() 함수가 워크스페이스에 미리 정의되어 있어서 입력값의 class(), mode(), typeof(), storage.mode()를 반환합니다. (작동 방식을 보려면 콘솔에 type_info를 입력하세요.)

  • 에디터에 제공된 예시 객체들로 리스트 some_vars를 만드세요.
  • lapply를 사용해 some_vars의 각 요소를 순회하면서 각 예시 객체에 type_info()를 호출해 타입을 확인하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Look at the definition of type_info()
type_info

# Create list of example variables
some_vars <- list(
  an_integer_vector = rpois(24, lambda = 5),
  a_numeric_vector = rbeta(24, shape1 = 1, shape2 = 1),
  an_integer_array = array(rbinom(24, size = 8, prob = 0.5), dim = c(2, 3, 4)),
  a_numeric_array = array(rweibull(24, shape = 1, scale = 1), dim = c(2, 3, 4)),
  a_data_frame = data.frame(int = rgeom(24, prob = 0.5), num = runif(24)),
  a_factor = factor(month.abb),
  a_formula = y ~ x,
  a_closure_function = mean,
  a_builtin_function = length,
  a_special_function = `if`
)

# Loop over some_vars calling type_info() on each element to explore them
___
코드 편집 및 실행