#R

[R language] : 기초 문법 (1)

2026.02.12

R을 왜 공부해야 하는가?

일반적인 회사에서는 만약 단순 데이터를 정리해야 된다면, 엑셀을 사용할 것 이다. 엑셀이 매우 뛰어난 프로그램이긴 하지만, 통계적으로 고급적인 분석과 시각화가 필요하다면 엑셀로는 한계점에 부딪히게 된다.

그럴 때 R이던 Python이던 어떤 언어를 통해 통계적인 기법을 적용시켜야 한다.

나는 Python을 더 좋아하고 압도적으로 자주 써왔지만, 학교 수업에서 R을 이용하기 때문에 R을 어느정도 공부하는 목적에서 이 글을 작성하기로 했다.

물론 R과 Python 둘 다 하면 좋지만, R은 데이터 핸들링 및 통계 모델링, 시각화에 조금 더 기능이 다양하고 Python은 기계학습, 딥러닝, 강화학습등에 더 기능이 다양하다.

R 기본문법

다른 언어들 처럼 R도 ide를 이용해야 조금 더 편하다. R을 이용할 때 가장 많이 사용하는 ide가 Rstudio이다.

별로 ide에 친숙하지 않다면 Rstudio를 사용하자. 본인은 jetbrains 학생용 라이선스를 통해 dataspell이라는 ide를 사용중이다.

할당 및 논리문

  • 할당 지정해주는 명칭에 값을 저장해주는 매우 기본적인 컴퓨터 언어로 흔히 변수라고 부른다.

여기서 = 은 같다라는 뜻이 아닌 우항을 좌항에 저장하여라 라는 뜻으로 이해하면 된다. 실행 결과, A에 2가 저장되었으며, 출력하면 2가 나오는 것을 확인할 수 있다.

  • 논리문 값이 해당 조건을 만족하는지 알 수 있는 문법으로 TRUE 혹은 FALSE 2가지 값 중 하나로 출력한다.

a에 2라는 값을 넣고 a가 2와 같은지 판단하는 논리문이다. 당연히 같으니 결과값으로 TRUE가 반환된다.

같은지 말고, 안 같은지를 판단하고 싶다면, !=를 사용하면 된다.

C() 의 활용

  • 백터의 생성 c()는 Combind의 약자를 나타내는 명령어로, R에서 매우 자주 쓰이는 명령어이다. c()는 벡터를 만드는데 사용된다. 벡터가 무엇인지 모른다면 간단히 데이터를 세로로 저장하는 것을 의미한다고 생각하면 된다.

이런식으로 데이터가 생성되고, 출력도 가능하다.

seq(), rep()를 통한 벡터 생성

  • sequence의 줄임말로 순차적인 데이터를 생성할 때 쓰인다.

seq(from = 시작 숫자, to = 마지막 숫자, by = 증가 범위) 와 같은 parameter들이 필요하다.

  • rep()는 repeat의 줄임말로 반복된 데이터를 생성할 때 쓰인다. rep(반복할 값, 반복할 횟수)

matrix(), data.frame()을 통해 데이ㅣ터 셋 만들기

  • matrix의 생성

R에서는 일반적으로 데이터 셋을 matrix 혹은 data.frame 형태로 정리한 후 분석을 진행하는 경우가 많다.

matrix(data = 데이터, now = 행의 수, ncol = 열의 수, byrow = 행/열 기준)

  • dataframe의 생성

head()는 데이터 상단 부분을 지정한만큼 출력해주는 함수로 여기서는 5로 설정되어 있어 5행까지 보여준다.

length(), dim()을 활용한 데이터 형태 파악하기

저장된 데이터의 형태를 파악하는 것은 데이터 분석 중간 중간 잘 확인을 해야한다.

  • 1차원 벡터인 경우, length를 활용할 수 있다.

  • 2차원 행렬인 경우 dim을 활용한다.

변수 형태 이해하기

R에서는 데이터의 타입을 아래처럼 정리 하며, 보통 Strings라고 부른다.

Strings 파악이 중요한 이유는 Strings에 따라 아예 다른 분석결과가 나올 수 있다. 예를 들어 순서가 중요한 변수를 명목형 변수로 취급하는 경우 순서 안에 속한 서열정보들이 포기되어 분석하게 되는 경우가 나올 수 있기 때문이다.

변수에는 크게 3가지 정도에 특성이 있다.

  • Discrete(이산형) : 1, 2, 3, 4 등으로 셀 수 있는 변수, 변수 값에 따라 서열 정보가 존재하지 않고 모두 동등한 것으로 판단한다.

  • 서열형 변수 : 명목형 변수에서 서열 정보가 주입된 변수, 따라서 명목형 변수보다 더 많은 정보를 포함하고 있다.

  • Continuos(연속형) : 셀 수 없고 구간으로 정의된 변수로 정보를 가장 많이 품고 있다.

as & is를 통해 strings 확인 및 변경하기

  • as()

as는 변수 x를 ~로 취급하겠다라는 의미를 가진다

  • is()

is는 논리문으로서 변수 x가 ~인지 판단하여라 라는 의미를 가진다. str()은 단순히 Strings를 확인하는 것이지, 논리문으로 결과를 반환하지 못하기 때문에 논리조건이 필요할 떄는 is()를 사용해야 한다.