본문 바로가기
  • "You can't manage what you can't measure" Peter Drucker
데이터 분석 (with Rstudio)

[R 기초] 변수 및 자료 유형 (벡터 및 주요함수)

by Vitaminymc 2023. 9. 10.
반응형

변수란

변수(Variable)는 데이터를 저장하고 관리하기 위한 기본 요소입니다. 

변수는 데이터를 저장하는 데 사용되며, 변수에는 다양한 유형의 데이터를 저장할 수 있습니다

변수는 해당(저장 된) 데이터에 접근하거나 조작할 때 사용됩니다.

R에서는 변수는 숫자, 문자열, 논리 값 등 다양한 데이터 유형을 저장하는 데 사용됩니다.

예) name, birth date, age, job, address 등

 

컬럼 (Columns) : 컬럼은 주로 데이터베이스 또는 표 형식의 데이터 구조에서 사용되는 용어입니다.

변수와 컬럼은 데이터의 저장 및 조작을 위한 관련된 개념이지만, 사용되는 문맥에 따라 약간의 차이가 있을 수 있습니다. 표나 데이터베이스의 열은 데이터의 특정 유형(숫자, 문자열 등)을 나타내며, 열은 데이터의 특정 속성 또는 변수를 나타냅니다.

 

변수 유형 (코딩 형식에 따른 변수 분류)

R에서 가장 일반적으로 사용되는 변수 유형에는 다음과 같은 것들이 있습니다.

유형 변수 형태 사용 예
숫자형 변수 
(Numeric Variables)
정수 (integer) 및 소수 (double) age <- 47, height <- 175.8
문자열 변수 
(Character Variables)
텍스트 데이터 name <- "YMC", city <- "Suwon"
작은 따옴표 ( ' ')나 큰 따옴표 (" ") 사이에 문자를 넣어 줌
논리 변수 
(Logical Variables)
참 (TRUE) 또는 거짓 (FALSE) 값 is_student <- FALSE, 
has_car <- TRUE
T, F로 줄여서 사용하는 것도 가능
팩터 변수 
(Factor Variables)
범주형 데이터 gender <- factor("Male", levels = c("Male", "Female"))
날짜 및 시간 변수 
(Date and Time Variables)
날짜와 시간 정보 birth_date <- as.Date("2023-09-09"), 
event_time <- as.POSIXct("2023-09-10 07:14:00")

 

데이터 분석/리터러시(Literacy)을 위한 변수 구분

측정 수준에 따른 변수 구분

데이터(또는 자료)는 숫자, 문자, 화상, 소리 등의 형태로 표현될 수 있으며, 정성적 데이터와 정량적 데이터로 구분합니다. 데이터 분석에서는 주로 수치 데이터를 대상으로 하며, 이렇게 수치를 부여하는 과정을 '수치화'라고 하며, 수치화 과정을 통하여 부여된 각 숫자를 변수값이라고 합니다.

변수값들이 가지는 상호 관계를 측정 수준이라고 하며, 변수값들 간의 관계에 따라 

명목척도 (Nominal Scale), 순서척도 (Ordinal Scale), 등간척도 (Interval Scale), 비율척도 (Ratio Scale)로 나눕니다. 통상적으로 명목척도 변수와 순서척도 변수를 범주형 변수 (Categorical variable)라고 하며, 등간척도 변수와 비율척도 변수를 연속형 변수 (Continuous variable)라고 합니다.

위에 코딩과 연계하여, 아래와 같이 구분하기도 하니다.

범주형 자료 : "분류"의 의미를 값들로 구성된 자료로, 보통 문자로 표현되고 산술연산 불가

수치형 자료 : 값들이 크기를 가지며, 산술 연산이 가능함

명목척도
(Nominal Scale)
분류에 기초를 두고 수치화된 데이터
수치의 크기 및 순서는 의미가 없으며, 수학적 계산이 불가능
예) 전체 구매 고객을 성별로 분류하여, 여자 고객은 '1', 남자 고객은 '2' 부여
 - 명칭을 대신할 뿐, 수량의 의미로서 '1'과 '2'를 의미하지 않음
 - 남자를 '1'로 여자를 '2'로 부여하여도 상관 없음
순서척도
(Ordinal Scale)
측정 대상들을 비교하기 위해, 특성의 다과(많고/적음) 또는 대소(크고/작음) 순서(서열)에 따라 부여한 데이터
예) 고객 만족도에 따라, 매우 만족 '5', 만족 '4', 보통 '3', 불만 '2', 매우 불만 '1' 부여
 - 수치가 커질수록 고객만족도라는 특성의 순서는 높아짐
 - 수치들은 단지 순서적 배열의 상대적 위치만 의미
 - 절대적인 비교는 불가,
   5로 응답한 고객이 1로 응답한 고객보다 5배 만족도를 가지는 것은 아님
등간척도 [구간척도]
(Interval Scale),
양적인 차이에 따라 등간격으로 수치를 부여한 데이터
4칙 연산 및 평균, 표준 편차 계산도 가능
해당 속성이 전혀 없는 상태인 절대적 원점이 존재하지 않으며, 비율의 의미가 존재하지 않음
예) 온도, 물가지수, 무역지수 등
 - 온도 0이 온도가 없다는 것을 의미하지는 않음
 - 100도가 50도의 정확히 두 배의 온도라고 말할 수는 없음 
비율척도
(Ratio Scale)
등간적도가 갖는 특성에 절대적 원점이 존재하고, 비율 계산이 가능한 데이터
4칙 연산 및 평균, 표준 편차 계산도 가능
예) 소득
 - 소득이 0이면 소득이 전혀 없음을 의미
 - 소득 1000만원은 500만원의 두 배를 의미

분석의 편의성을 위해서 명목척도와 순서척도로 수치화 하였으나, 범주형 자료 형태 그대로 사용하는 경우도 많습니다. 

인과 관계에 따른 분류

독립변수 (설명 변수) : 다른 변수에 영향을 주는 변수로 원인이 됩니다.

종속변수 (반응 변수) : 다른 변수에 영향을 받는 변수로 결과가 됩니다.

 

300x250

 

변수 선언과 초기화 (Variable Declaration and Initialization)

변수 Declaration (선언 : 변수를 정의하거나 생성하는 작업)을 통해서, 변수의 이름과 데이터 유형을 지정하고, 변수를 처음 값을 할당하는 작업 (Initialization, 초기화)

변수를 선언하고 초기화하기 위해서는 <- 연산자를 사용합니다.

변수 이름 지정 주의사항

1. 대소문자 구분 : R은 대소문자를 구분합니다.

  • 대문자와 소문자를 혼용하면 다른 변수로 인식
  • 예) Fname과 fname은 다르게 인식

2. 시작 문자 : 변수명은 문자로 시작해야 하며, 숫자로 시작할 수 없습니다.

  • 예) 123th는 변수명으로 사용 불가

3. 특수 문자 : 변수명에는 일반적으로 밑줄 (_), 점(.)을 제외한 특수 문자를 포함할 수 없습니다.

  • 예) birth.date 나 birth_date는 사용 가능
  • 변수명 중간에 빈 칸을 넣을 수 없음
  • 예) birth date
  • 정확하게는  ` `로 사용하여 빈 칸을 넣을 수는 있으나 지양

4. 예약어 : R에서 예약된 단어는 변수명으로 사용할 수 없습니다.

  • 예) if, else, for 등은 변수명으로 사용할 수 없습니다. 

5. 의미 있는 이름 : 가능한 변수명은 해당 변수의 내용을 잘 나타내야 합니다.

  • 의미 없는 약어나 단어의 조합은 지양

벡터 (Venctor)

벡터 (Vectors)는 R에서 가장 기본적이고 중요한 데이터 구조 중 하나입니다.

벡터는 동일한 데이터 유형의 여러 값을 저장하는 데 사용됩니다.

벡터는 변수 값의 집합으로 생각할 수 있으며, 한 번에 여러 값을 저장하고 처리하는 데 유용합니다. 

벡터 (Vector) 주요 함수

sum( ) 벡터에 저장된 값들의 합
mean( ) 벡터에 저장된 값들의 평균
var( ) 벡터에 저장된 값들의 분산
sd( ) 벡터에 저장된 값들의 표준편차
max( ) 벡터에 저장된 값들의 최댓값
min( ) 벡터에 저장된 값들의 최솟값
median( ) 벡터에 저장된 값들의 중앙값
range( ) 벡터에 저장된 값들의 범위(최댓값과 최솟값)
sort( ) 벡터에 저장된 값들의 정렬 (오름차순이 기본)
rank( ) 벡터에 저장된 값들의 순위
length( ) 벡터에 저장된 값들의 개수
# 숫자 벡터 초기화
 scores <- c(100, 100, 43, 60, 90, 55, 10, 100)
# 벡터 연산
 sum_scores <- sum(scores)
 sum_scores
[1] 558
 mean_scores <- mean(scores)
 mean_scores
 [1] 69.75
var_scores <- var(scores)
var_scores
[1] 1107.643
sd_scores <- sd(scores)
sd_scores
 [1] 33.28127
max(scores)
 [1] 100
min(scores)
[1] 10
median(scores)
[1] 75
range(scores)
[1]  10 100
 sort(scores)
[1]  10  43  55  60  90 100 100 100
sort(scores, decreasing = TRUE)
[1] 100 100 100  90  60  55  43  10
rank(scores)
[1] 7 7 2 4 5 3 1 7
length(scores)
[1] 8

 

Image Source : pixabay

Pixabay로부터 입수된 Clker-Free-Vector-Images님의 이미지 입니다.

 

 

728x90