데이터 분석을 위한 R수업 <3차시 ①: 데이터 프레임>

2024. 10. 5. 19:05·📊 R & 데이터 분석
반응형

데이터 프레임 이해하기

 

열은 속성을 나타낸다.

행은 한 사람의 정보를 나타낸다.

 

한 명에 대한 데이터는 가로 한 줄에 나타난다.

데이터가 크다는 것은 행이 많거나 열이 많다는 것이다.

 - 행이 많을 경우 컴퓨터가 느려진다.

 - 열이 많을 경우 분석 방법의 한계를 갖는다. (여러 변수의 영향을 고려하기 어려워진다.)

 

데이터 분석의 가치는 어떤 현상이 조건에 따라 달라진다는 사실을 발견할 때 생겨난다.

ex) 특정 날씨에 어떤 음식이 더 많이 팔린다.

ex) 어떤 모양의 돌에서 교통사고가 많이 발생한다.

 

영어점수 수학점수
90 50
80 60
60 100
70 20

 

다음과 같은 데이터 프레임을 만들어보겠다.

 

우선 학생 네명의 영어점수와 수학점수를 담은 변수를 각각 만든다.

combine()함수를 이용한다.

 

english <- c(90, 80, 60, 70)
math <- c(50, 60, 100, 20)

english
math

 

결과값

 

데이터 프레임을 만들때는 data.frame() 함수를 이용한다.

데이터 프레임 변수인 df_midterm을 만들어 english와 math를 할당하겠다.

df_midterm <- data.frame(english, math)
df_midterm

결과 값 2

각 변수가 각 열(속성)으로 들어간 것을 알 수 있다.

 

이번에는 학생의 반에 대한 정보가 추가된 데이터 프레임을 만들어보겠다.

class <- c(1, 1, 2, 2)
class

df_midterm <- data.frame(english, math, class)
df_midterm

결과 값 3

데이터 프레임이 완성되었으니 이를 분석할 수 있다.

 

mean() 함수를 이용해 전체 학생의 영어점수와 수학점수 평균을 구해보겠다.

 

df_midterm <- data.frame(english, math, class)
df_midterm

mean(df_midterm$english) #df_midterm의 english속성으로 평균 산출
mean(df_midterm$math) #df_midterm의 math속성으로 평균 산출

결과 값 4

 

기호 $는 dataframe안에 포함되어 있는 열속성(변수)를 가르킨다.

 

데이터 프레임을 한번에 만드는 방법을 배워보겠다.

 

df_midterm <- data.frame(english = c(90, 80, 60, 70),
                         math = c(50, 60, 100, 20),
                         class = c(1, 1, 2, 2))
df_midterm

결과 값 5

 

04-3 외부 데이터 이용하기

예제로 쓰이는 파일

https://github.com/youngwoos/Doit_R/blob/master/Data/excel_exam.xlsx

 

Doit_R/Data/excel_exam.xlsx at master · youngwoos/Doit_R

<Do it! 쉽게 배우는 R 데이터 분석> 저장소. Contribute to youngwoos/Doit_R development by creating an account on GitHub.

github.com

 

 

5개의 속성을 담은 5개의 변수가 있음을 알 수 있다.

데이터 파일을 불러오기 위해서는 현재 작업중인 프로젝트 폴더에 xlsx파일을 삽입하는 것이다.

install.packages("readxl")
library(readxl)

readxl

readxl  패키지를 설치한 후 실행시켜 준다. packages 창에서 활성화 된 것을 확인해준다.

 

df_exam <- read_excel("excel_exam.xlsx")
df_exam

 

read_excel 함수를 이용해 데이터프레임 변수 df_exam에 할당해준다.

프로젝터 폴더 외에 엑셀파일이 위치할 때는 d:/esay_r 처럼 경로를 지정해준다.

파일 앞뒤로 " " 를 찍어주어야 한다.

 

결과값

read_excel 함수는 엑셀파일의 첫번째 행의 값을 변수명으로 인식한다.

이 경우 col_names = F 파라미터를 설정하면 첫번째 행의 값 역시 데이터로 인식하고

변수 명은 숫자를 임의로 할당한다.

 

df_exam <- read_excel("excel_exam.xlsx", col_names = F)
df_exam

 

엑셀 파일에 여러개의 시트가 있다면 sheet 파라미터를 이용해 몇번 째 시트를 불러올지 구할 수 있다.

 

df_exam <- read_excel("excel_exam.xlsx", sheet = 3)
df_exam

 

.xlsx파일을 데이터프레임으로 불러오기 위해서는 read_excel 함수와 readxl 라이브러리가 필요하다.

 

.csv파일을 불러오기 위해서는 R내장 함수인 read_excel() 함수를 이용하면 된다.

이때 col_names = F 파라미터와 같은 기능으로 header = F 파라미터를 써야 한다.

 

데이터 프레임을 CSV 파일로 저장할 수 있다.

write.csv() 함수를 이용하면 된다.

 

write.csv(df_midterm, file = "df_midterm.csv")

 

csv 대신 R 전용 데이터 파일은 RDS파일로 저장할 수도 있다.

이때 저장은 saveRDS(), 불러오기는 readRDS() 함수를 이용한다.

rm() 함수는 변수내의 값을 제거할 수 있다.

 

saveRDS(df_midterm, file = "df_midterm.rds")
rm(df_midterm)
df_midterm <- readRDS("df_midterm.rds")
df_midterm

 

정상적으로 데이터가 출력된 걸 알 수 있다.

 

자주 이용하는 파일은 3가지. .xlsx. csv. .rds이다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'📊 R & 데이터 분석' 카테고리의 다른 글

데이터 분석을 위한 R수업 <3차시 ④: 파생변수 만들기>  (4) 2024.10.05
데이터 분석을 위한 R수업 <3차시 ③: 변수명 바꾸기>  (1) 2024.10.05
데이터 분석을 위한 R수업 <3차시 ②: 데이터 다루기>  (1) 2024.10.05
데이터 분석을 위한 R수업 <2차시 : 변수>  (1) 2024.10.03
데이터 분석을 위한 R수업 <1차시 : ggplot2>  (7) 2024.10.03
'📊 R & 데이터 분석' 카테고리의 다른 글
  • 데이터 분석을 위한 R수업 <3차시 ③: 변수명 바꾸기>
  • 데이터 분석을 위한 R수업 <3차시 ②: 데이터 다루기>
  • 데이터 분석을 위한 R수업 <2차시 : 변수>
  • 데이터 분석을 위한 R수업 <1차시 : ggplot2>
해랑(Sea-wave)
해랑(Sea-wave)
관심있는 주제를 작성합니다. 환경·경제·사회·기술 등
  • 해랑(Sea-wave)
    해랑의 디지털 저장소A
    해랑(Sea-wave)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍀 감정 & 자동적 사고
      • 🛒 생활정보
      • 🕵️‍♂️ 법학 및 변호사 준비
      • 📊 R & 데이터 분석
      • 📚 정보스크랩 (Copy & Paste)
      • 🗾 일본어 & 해외생활
      • 💎 경제 이야기
      • 🧑‍🏫 수업 노트
      • 💛 연애와 관계
      • 🧭 미래 설계
      • 📜 역사
      • 🚗 로블록스 & 게임
      • 🧪 자연과학
      • ✅완료한 도전
      • 기술고시
      • 캐드
      • GIS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    후쿠시마
    ONSOWEEK 2023
    현대차 정몽구재단
    챗gpt
    학업
    오블완
    티스토리챌린지
    일본대사관
    후쿠시마현
    현대차정몽구재단 2023
    현대차 정몽구 스칼라십
    일본
    온소위크 2023
    홋카이도
    삿포로
    ChatGPT
    한국
    현대차 정몽구 재단 임팩트 컨퍼런스
    변호사시험
    R
    임팩트 컨퍼런스
    한국청년방일단
    JPOP
    로스쿨
    데이터분석
    일한문화교류기금
    1학년 1학기
    JENESYS2025
    성적
    온드림소사이어티
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
해랑(Sea-wave)
데이터 분석을 위한 R수업 <3차시 ①: 데이터 프레임>
상단으로

티스토리툴바