기본적으로 프로그램은 <입력 → 처리 → 출력>의 과정을 거칩니다. 그중 <입력> 과정은 데이터를 컴퓨터 메모리에 저장하기 위해서 변수를 정의하는 단계를 말하는데, 이는 R에서 객체를 생성(할당)하는 단계와 동일합니다. 다른 언어와는 다르게 R은 주로 <-(할당연산자, Assignment Operator)을 통해 객체를 할당합니다.

 

6.1. 객체(Object)의 정의와 할당

더보기

(1) 객체의 정의

객체는 데이터 상의 문자·숫자·데이터를 처리하기 위한 함수와 그 함수를 통해 출력된 결과를 모두 포함하는 개념으로써, 이를 데이터 유형(Type)과 구조(Structure)에 따라 구분합니다. 객체를 할당한다는 말은 메모리에 객체를 저장한다(실체를 구현한다)는 말과 동일합니다.

 

(2) 객체 할당 방법

연산자 의미 예시
 <- 오른쪽 값을 왼쪽 값에 할당 scalar_01 <- 3
= scalar_02 = 17
-> 왼쪽 값을 오른쪽 값에 할당 35 -> scalar_03

 

(3) 예시

위의 예시를 실제로 R로 구현하고, 이를 환경창을 통해 확인하면 다음과 같습니다.

scalar_01 <- 3
scalar_02 = 17
35 -> scalar_03

 

PLUS) =<-에 대한 논의

R에서는 객체를 정의하고자 할 땐 =보다는 <-을 사용합니다. 물론 =도 사용가능한데 굳이 <-을 사용하는 이유는 무엇일까요? 그 이유는 다음과 같습니다. 

 ①역사적으로 R은 S라는 언어에서 파생되었는데, S는 =가 없는 특정 키보드 배열에서 설계됨

 출처: https://colinfay.me/r-assignment/

 ②연산자의 우선 순위상 <-=보다 우선함

 ③R에서는 함수 안의 파라미터 값으로 =을 사용하는 것이 정확함

 

(4) 객체 명명 규칙

R에서 객체의 이름을 정의할 때 다음과 같은 규칙이 있습니다.

 ①알파벳, 한글, 숫자, ., _ 사용 가능

 ②알파벳의 대소문자를 구분함

 ③객체 이름은 숫자나 _로 시작할 수 없음

 ④객체 이름이 .으로 시작될 경우, 다음에 숫자가 올 수 없음 (예: .35라는 객체는 할당할 수 없음)

주로 .으로 시작하는 객체는 R 구동을 위한 내부 변수로 많이 쓰이므로 할당을 지양하는 것이 좋습니다. 그러므로 변수의 첫 글자는 알파벳으로 시작하는 것을 추천드립니다.

 

6.2. 객체 설정 및 관리

더보기

(1) 객체 목록 확인 함수, ls()

ls() 함수는 메모리에 저장된 객체를 출력하는 함수입니다. 예시는 다음과 같습니다.

ls() #소문자 l(엘)임

 

(2) 객체 제거 함수, rm()

rm() 함수는 메모리에 저장된 객체를 제거하는 함수입니다. 예를 들어 현재 저장된 scalar_01 객체를 삭제하고자 한다면 다음과 같습니다.

rm(scalar_01)

 

PLUS) 메모리에 저장된 모든 객체 제거하기 

만약 메모리에 저장된 모든 객체를 제거하고자 한다면, rm() 함수와 ls() 함수를 이용할 수 있습니다.

rm(list=ls())

단, 해당 코드는 .으로 시작되는 객체는 제거되지 않습니다.