ADsP R기초

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

함수와 객체

R에는 정말 다양한 함수가 있습니다. 함수는 이미 몇 번 써봤습니다. 앞서 본 데이터 변환 하는 것도 함수고요. 저희가 처음 라이브러리를 불러오고, 선형회귀 모델을 만들 때 쓴 것도 함수입니다.

함수이름(매개변수1, 매개변수2...)

함수도 변수처럼 상자라고 할 수 있습니다. 입력 변수를 넣으면 출력 변수가 튀어나오는 기계상자지요. 함수는 매개변수를 받아서 이것저것 처리한 다음 결과를 돌려줍니다. 때로는 알아서 일을 처리하고 뭘 출력하진 않는 함수도 있긴 합니다. 함수 안에서는 이것저것 복잡한 일이 일어나지만 자세히 알 필요는 없습니다. 우리가 전자렌지나 컴퓨터의 원리를 몰라도 되듯이, 결국 함수를 잘 쓸 줄만 알면 됩니다.

새로운 함수 정의하기

함수는 보통 이미 있는 걸 가져다 쓰지만, 새로 만들 수도 있습니다. 이따금 시험에도 나오는데요. 다음과 같이 정의합니다.

함수이름 <- function(매개변수1, 매개변수2, ...) {
  함수 내용... 이것저것
  return(출력할 값)
}

객체

보통 함수는 짝이 되는 자료구조, 객체와 같이 쓰입니다. 객체는 변수와 함수를 합쳐서 하나의 역할을 하게 만들어놓은 세트입니다. 객체도 보통 상자 = 변수에 넣어놓고 씁니다.

예를 들어 문자열도 여러 문자들을 담고 있는 객체입니다. 곧 배우겠지만 문자열에도 세트로 딸려 있는 함수들이 있습니다. 이런 함수를 메소드라고도 부른답니다.

이 밖에도 벡터라던가, 리스트나 행렬, 날짜, 데이터 프레임, 데이터테이블... 다양한 자료구조와 객체가 있습니다. 하나하나 차근차근 배워봅시다.

 

기출문제

다음 프로그램의 실행 결과는?

cal <- function(a){
    x=1
    #i=1 부터 i=2, i=3... i=a가 될 때까지 반복하는 프로그램입니다.
    for (i in 1:a){
        x =x*i
    }
    return(x)
}

print(cal(5))

혹시 이 프로그램이 이해가 잘 안 간다면 다음 장에서 수열을 배운 뒤에 다시 도전해보세요. 반복문에 대해서는 이 링크를 참조하세요.

댓글

댓글 본문
작성자
비밀번호
  1. Taehee Kim
    위의 설명처럼 괄호 넣는 게 맞습니다! 제가 파이썬 하던 버릇이 남아서 잘못 썼네요. 수정했습니다~
    대화보기
    • student
      기출문제의 함수 마지막에 return x는 에러가 나는데, return(x) 으로 바꾸면 정상작동합니다. 괄호 있는게 맞는건가요?
    버전 관리
    Taehee Kim
    현재 버전
    선택 버전
    graphittie 자세히 보기