본문 바로가기
언어/R

[R-004] R 기본 문법

by 천왕지짐 2023. 3. 29.

이미 다른 프로그래밍 언어를 사용해본 경험이 있다면 한번 쭉~ 읽어보면 될 듯 싶다. 읽고 간단히 실습하면서 다른 언어와 비교해봐도 좋을 것 같다.

 

1. 주석
"#" 다음에 나타나는 모든 문장은 주석으로서 실행에 영향을 미치지 않는다. 명령어 문장을 설명하는 목적으로 주로 사용된다.
- R에서 #은 주석으로 줄바꿈을 해야만 주석에서 벗어난다.
- Rstudio에서 여러 줄 주석은 드래그 후 Ctrl + Shift + C이다. 해제는 다시한번...

[실습] 주석에 대해 실습해 보자.

> 3 + 2   #두수의 합
[1] 5


참고로 결과로 매번 나타나는 [1] 표시는 옆에 있는 결과값이 몇 번째인가를 나타내는 번호로 첫 번째 값이 5라는 것을 의미한다.

 


2. 할당문
R은 프로그래밍 언어처럼 변수에 값을 저장할 때 사용하며 <-, ->, = 모두 사용 가능하다. 공식 기호는 <- 이다. 할당문은 실행은 되지만 그 결과는 콘솔창에 나타내지 않으며 할당 결과를 콘솔에 나타내고 싶다면 괄호()로 감싼다.

[실습] 다양한 방법의 할당문을 실습해 보자.

> x <- 7; y = 3
> (y = 3)
[1] 3

참고 명령문이 여러 개일 때는 세미콜론 “;”으로 구분한다.

 


3. 문자 자료 할당
문자는 단순 따옴표( ' ' )혹은 이중 따옴표( " ")를 붙여 표기한다. 

[실습] 문자 자료를 할당하는 실습을 해 보자.

> s1 = 'Character' ; s2 = "Type"
> s1; s2
[1] "Character"
[1] "Type"

참고 다중 할당도 가능하다. x=y=z=7;

 


4. 기본 계산 기능
산술연산(+, -, *, /, ^ 또는 **, %%, %/%)이 가능하다. 
- ^ 또는 **는 승수
- %%는 나머지 값
- %/%는 몫을 구함

[실습] 산술연산에 대해 평상 시 익숙하지 않은 것만 실습해 보자.

> 3 ^ 2
[1] 9
> 3 %% 2
[1] 1
> 5 %/% 2
[1] 2


논리연산(<, <=, >, >=, !=, !, |, &, isTRUE())도 가능하며 결과로는 TRUE, FALSE를 반환한다.
- isTRUE()는 해당 변수값이 TRUE인지의 여부를 나타낸다.

[실습] 논리 연산에 대해 실습해 보자.

> 7 < 4
[1] FALSE
> 5 != 6
[1] TRUE


5. 기본 자료형
자료를 저장하기 위한 형태(type)로 단일 값을 저장할 때 사용한다.
 - 숫자형(정수, 실수, 복소수)
 - 문자형(큰 따옴표로 둘러 쌓아서 저장)
 - 논리형
 - 특수한 상수(NULL, NA, NaN 등)
 
[실습] 자료형에 대해 실습해 보자.

> x <- 3
> y <- 2
> x / y
[1] 1.5

자료형 정보 확인 함수
- typeof()

자료형 확인 함수
- is.integer(x) : x가 정수형이면 TRUE, 아니면 FALSE
- is.numeric(x) : x가 실수형이면
- is.complex(x) : x가 복소수형이면
- is.character(x) : x가 문자열이면
- is.na(x) : x가 NA(Missing Value)이면

 


6. 함수(Function, method)
변수가 자료를 저장하는 역할이라면 함수는 어떤 기능을 수행하는 행위를 나타낸다.

[실습] 다양한 함수에 대해 실습해 보자.

> sum(c(1,2,3,4,5,6,7,8,9,10))
[1] 55
> ls()          # 실습 여부에 따라 약간씩 다름
> seq(1, 10)
[1]  1  2  3  4  5  6  7  8  9 10
> seq(1, 10, by=2)
[1] 1 3 5 7 9
> help(c)


7. 자료 구조(형태)
단일 값들이 모여진 자료형태로 vector, matrix, array, list, data.frame을 의미한다.

벡터(Vector) : 단일값(scalar) 또는 동일한 자료형들의 모임으로 생성연산자와 생성함수를 통해 만들 수 있음
- 생성연산자(시작값:종료값) 사용
- 생성함수(vector(lecgth=n), c(), seq(), rep())

[실습] 벡터에 대해 실습해 보자.

> x <- c(1,2,3,4,5,6,7,8,9,10)
> length(x)          #벡터 x의 원소 개수를 알려고 할 때 length()함수 사용
[1] 10
> x[5]
[1] 5
> x[1, 2, 3]         #에러
> x[c(1, 2, 3)]
[1] 1 2 3
> x + 2
[1] 3,4,5,6,7,8,9,10,11,12  #개별값과 벡터의 연산은 개별값 + 벡터 각각의 값

벡터 관련 함수
- is.vector(x) : 주어진 자료가 벡터이면 TRUE, 아니면 FALSE 반환


8. 샘플 데이터 구하기
다음 사이트에서 샘플 데이터의 종류에 대해 알아보고 사용해 보자.
 - data()
 - https://vincentarelbundock.github.io/Rdatasets/datasets.html 
 - csv 파일을 직접 열어볼 수 있음

[실습] 아래 내용을 따라서 실습해 보자.

> data(“mtcars”)  # mtcars 데이터 셋을 불러온다.
> head(mtcars)   # mtcars 데이터 셋의 상위 6개 항목을 확인한다.
> head(mtcars, n=2)  # 자료에서 2줄까지만 출력하고 싶을 때 옵션을 이용한다.
> tail(mtcars)   # mtcars 데이터 셋의 하위 6개 항목을 확인한다.
> mtcars


R에 내장된 데이터 셋을 확인해 보자.
> datasets::을 입력하면 커서 옆에 자동으로 내장된 데이터 셋 목록이 뜬다.
> datasets::mtcars

자료의 구조를 확인해보자.
> str(mtcars)

변수명이 생각나지 않는다면 
> names(mtcars)

자료의 행이나 열의 개수를 확인하고 싶다면
실습 실습해 보자.

> dim(mtcars)
[1] 32 11
> ncol(mtcars)
[1] 11
> nrow(mtcars)
[1] 32


특정 조건을 만족하는 행(값)의 개수 구하기
> length(which(mtcars$gear==4))  # mtcars의 gear열이 4인 경우의 개수 구하기

특정 열의 합계 구하기
> sum(mtcars$gear)

'언어 > R' 카테고리의 다른 글

[R-006] 데이터 프레임(Data Frame)  (0) 2023.04.04
[R-005] 벡터(Vector) 2  (0) 2023.03.29
[R-003] 데이터 구조, 벡터 1  (0) 2023.03.29
[R-002] R, RStudio 설치하기  (0) 2023.03.28
[R-001] 빅데이터 분석, R  (0) 2023.03.28

댓글