본문 바로가기
빅데이터

[빅데이터]-R프로그래밍 #1. 변수, 데이터타입, 함수

by 어락이 2024. 7. 8.
오늘은 RStudio를 이용하여 R의 변수, 데이터타입, 함수에 대해 알아보자

 

1. 변수

R에서의 변수 할당은 기본적으로 '<- ' 기호를 사용한다.
다른 프로그래밍 언어와 같이 ' = ' 를 사용해도 같은 동작을 한다.

또한 특징으로는 자동으로 데이터 타입이 지정이 된다. 이는 동적 타이핑(dynamic typing)이라고 불리는 특징으로, 변수의 데이터 타입이 런타임시에 결정되는 것이다.

 

# 변수 할당
x <- 10
y = "Hello, R!"
z <- TRUE

# 변수 출력
print(x)
print(y)
print(z)
실행결과
> print(x)
[1] 10
> print(y)
[1] "Hello, R!"
> print(z)
[1] TRUE

 

2.데이터 타입

R은 여러가지 데이터 타입을 지원하며 주요 데이터 타입은 다음과 같다.
  • 숫자형(Numeric) : 정수 또는 실수
  • 문자형(Character) : 문자열
  • 논리형(Logical) : TRUE   또는 FALSE
  • 팩터형(Factor) : 범주형 데이터
  • 벡터(Vector) : 동일한 타입의 값들의 집합
  • 매트릭스(matrix) : 2차원 배열로, 동일한 타입의 값들로 이루어진 행렬
  • 배열(Array) : 다차원 배열로, 동일한 타입의 값들로 이루어져 있고 매트릭스의 일반화된 형태
  • 리스트(List) : 다양한 타입의 값들의 집합(숫자형, 문자형, 논리형 등 여러 타입의 데이터를 포함가능)
  • 데이터 프레임(Data Frame) : 표 형태의 데이터 구조, 각 열은 벡터이며 각 벡터는 서로 다른 타입을 가질 수 있음(데이터 분석에서 주로 사용함)
# 숫자형
num <- 42.5

# 문자형
char <- "R Programming"

# 논리형
bool <- TRUE

# 벡터
vec <- c(1, 2, 3, 4, 5)

# 리스트
lst <- list(num, char, bool)

# 데이터 프레임
df <- data.frame(Name = c("Alice", "Bob"), Age = c(25, 30))

# 매트릭스
mat <- matrix(1:9, nrow = 3, ncol = 3)

# 배열
arr <- array(1:8, dim = c(2, 2, 2))

# 출력
print(num)
print(char)
print(bool)
print(vec)
print(lst)
print(df)
print(mat)
print(arr)

 

출력결과
> print(num)
[1] 42.5
> print(char)
[1] "R Programming"
> print(bool)
[1] TRUE
> print(vec)
[1] 1 2 3 4 5
> print(lst)
[[1]]
[1] 42.5

[[2]]
[1] "R Programming"

[[3]]
[1] TRUE

> print(df)
   Name Age
1 Alice  25
2   Bob  30

> print(mat)
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> print(arr)
, , 1

     [,1] [,2]
[1,]    1    3
[2,]    2    4

, , 2

     [,1] [,2]
[1,]    5    7
[2,]    6    8
3. 함수

R에서도 다른 프로그래밍 언어와 같이 함수로 작업을 캡슐화 해서 재사용화 할 수 있다.

내장함수와 사용자 정의 함수가 있으며 사용자 지정 함수는 function 키워드를 사용하여 정의한다.

함수 호출 방식에는 여러가지가 있지만 대표적으로 다음과 같이 2가지 방법이 있다.

 

밑의 링크를 통해 더 많은 R의 내장함수들과 연산자들의 종류를 알 수있다.

R 내장함수 및 연산자

# 함수 정의
add <- function(a, b) {
  return(a + b)
}

# 함수 호출의 2가지 방법

#위치 기반 인자 전달 (Positional Arguments)
result <- add(5, 3)
print(result)

#이름으로 인자 전달(Named Arguments)
result2 <- add(a = 3, b = 5)
print(result2)
출력결과는 둘다 같다
> result <- add(5, 3)
> print(result)
[1] 8
> 
> #이름으로 인자 전달(Named Arguments)
> result2 <- add(a = 3, b = 5)
> print(result2) 
[1] 8

 

R에서 데이터 변환을 위해 내장되어있는 함수를 사용하여 데이터의 타입을 변환해 보았다.

 

# 문자형을 숫자형으로 변환
char_num <- "123"
num <- as.numeric(char_num)
print(num)        # 출력: 123
print(class(num)) # 출력: "numeric"

# 숫자형을 문자형으로 변환
num_char <- as.character(num)
print(num_char)   # 출력: "123"
print(class(num_char)) # 출력: "character"
출력결과
> # 문자형을 숫자형으로 변환
> char_num <- "123"
> num <- as.numeric(char_num)
> print(num)        # 출력: 123
[1] 123
> print(class(num)) # 출력: "numeric"
[1] "numeric"
> 
> # 숫자형을 문자형으로 변환
> num_char <- as.character(num)
> print(num_char)   # 출력: "123"
[1] "123"
> print(class(num_char)) # 출력: "character"
[1] "character"

 

마치며

오늘은 데이터 분석을 위해 새로운 언어인 R의 변수 선언 방법과 데이터타입, 함수에 대해 알아보았다.

대표적인 언어중 비슷한 언어를 고르자면  Python과 유사한 것 같다.

 

R에도 java의 class와 같이 객체지향프로그래밍 개념이 존재 한다고 한다.

쉽고 간단한 언어라고 생각 했으나 생각해야 할것들이 많아 당황했지만 다른 프로그래밍을 학습한 경험이 있어서 빠르게 이해 할 수 있었던 것 같다.