학습목표
1. 데이터 입력에 대해 알아본다.
2. 분석한 결과를 외부 파일로 저장하는 방법에 대해 살펴본다.
3. 외부 데이터를 불러오는 방법에 대해 알아본다.
1. 데이터 입력
작업 디렉토리 설정 및 현재 디렉토리 확인
- setwd( ) 함수를 사용해 작업 디렉토리를 변경하면 문서나 그림 파일 등에 손쉽게 접근 가능
- D 드라이브하에 "datav" 라는 디렉토리가 만들어져 있다고 가정하면, 아래 명령을 통해 현 작업 디렉토리를 설정하고 모든 파일을 이 datav에 저장할 수 있으며 또한 저장된 자료를 불러오는 곳으로 활용 가능
> setwd('D:\\datav')
- 현재 작업 디렉토리가 적절하게 변경되었는지 확인하기 위해 작업 디렉토리 확인을 다음과 같이 수행 가능
> getwd( )
[1] "D:\datav"
c( ) _ 데이터 입력
- 가장 기본적인 데이터 입력방법
- 벡터: 하나 이상의 관측값을 갖는 자료구조를 의미
- 좌측에는 벡터 이름이 위치하며, '<-' 나 '=' 연산자는 데이터가 할당됨을 의미
- 우측에는 입력대상이 되는 데이터의 관측값이 c 함수 내에 나타나게 됨
> x <- c(1,2,3,4,5)
> x
[1] 1 2 3 4 5
> (y <- c(10,20,30,40,50))
[1] 10 20 30 40 50
> dat <- cbind(x,y)
- cbind: 두 벡터를 열 방향으로 결합 하는 함수
> dat
x y
[1,] 1 10
[2,] 2 20
[3,] 3 30
[4,] 4 40
[5,] 5 50
scan( ) _ 데이터 입력
- 다음 함수를 실행하면 실행 프롬프트가 "1:" 로 바뀌는데 이 때 자료를 하나씩 입력하고 Enter 키를 치면 다음 값을 입력할 수 있게 됨
- 마지막 값을 입력하고 추가로 입력 값이 없으면 그냥 Enter 를 한 번 더 치면 입력이 종료
> w1 <- scan()
1: 23
2: 4
3: 5
4: 6
5: 7
6:
Read 5 items
> w1
[1] 23 4 5 6 7
2. 데이터 저장
sink( ) _ 출력 결과 파일 저장
- 화면에 출력된 모든 결과를 파일로 저장할 수 있음
- 시작 시 아래와 같이 저장할 파일명을 지정하고 원하는 함수를 실행 후 종료 시 sink() 로 마감하면 됨
> sink('printa.txt')
> summary(iris)
> sink()
파일 탐색기에서 printa.txt 를 열어보면 다음과 같은 summary 결과가 저장되었음을 확인할 수 있다.
write.csv( ) _ 데이터 저장
- R에서 생성된 객체(object)는 외부 파일로 저장 가능한데, 경로를 별도로 지정하지 않으면 이미 설정된 작업 디렉토리에 저장됨
- 예제: R작업 경로가 "D:/datav" 로 저장되어 있다고 하자. 아까전 생성한 dat 객체를 "dat_exam1.csv" 라는 파일로 저장해보자.
- csv(comma separated values) : 엑셀, 노트패드 등 다양한 프로그램에서 쉽게 저장 및 편집 할 수 있는 데이터 포맷
> write.csv(dat,'dat_exam1.csv')
write.table( ) _ 데이터 저장
- write.csv() 와 유사한 함수지만, 기본적으로 지정되어 있는 옵션상 차이점이 존재
- 예제: dat 를 dat_exam2.txt 라는 텍스트 파일로 저장하고 write.csv() 함수를 사용할 경우와 비교해보자
> write.table(dat,'dat_exam2.txt')
- 콤마 대신 공백(탭)을 기준으로 관측값을 구별하게 됨
- 콤마를 이용해 관측값을 구별하기 위해서는 함수 내 다음과 같이 sep=" , " 라는 옵션을 추가
> write.table(dat,'dat_exam2.txt', sep=",")
3. 데이터 불러오기
read.csv( ) _ 데이터 불러오기
- 저장된 csv 자료는 read.csv() 함수를 이용해 R 프로그램으로 불러올 수 있음
> dat2 <- read.csv('dat_exam1.csv')
> dat2
X x y
1 1 1 10
2 2 2 20
3 3 3 30
4 4 4 40
5 5 5 50
- header=T 라는 옵션을 주게 되면 첫 번째 행의 문자열을 변수명으로 취하게 됨
- 다만, read.csv() 함수에서는 default 옵션이므로 생략하더라도 무관
> us_dat <- read.csv('USArrested.csv',header=T)
> head(us_dat)
str( ) _ 데이터 구조 확인하기
- 불러온 자료에 대한 구조를 다음과 같이 확인할 수 있다.
> str(dat2)
'data.frame': 5 obs. of 3 variables:
$ X: int 1 2 3 4 5
$ x: int 1 2 3 4 5
$ y: int 10 20 30 40 50
read.table( ) _ 데이터 불러오기
- 텍스트 파일은 read.csv() 외에도 read.table() 를 이용해 불러올 수 있음
- header=T를 생략하게 되면 R은 데이터에 지정된 변수명이 없다고 생각하여 임의로 V1, V2 를 변수명으로 사용
- 즉, read.table() 은 header=F 가 default 로 지정되어 있음을 유의
> read.table('dat_exam1.csv')
V1 V2
1 NA ,"x","y"
2 1 ,1,10
3 2 ,2,20
4 3 ,3,30
5 4 ,4,40
6 5 ,5,50
na.srings 옵션을 이용한 결측치 결정
- 결측치가 'NA' 로 표시됨
- na.strings 옵션을 지정해주면 특정한 문자를 결측치로 인식 가능
> nadat <- read.csv('var.txt', na.strings='aa', header=TRUE)
>
> nadat
var1 var2
1 11 <NA>
2 22 bb
3 33 cc
4. 객체 확인 및 삭제
ls( ) _ 객체 확인
- 작업하다 보면 여러 객체들이 생성되어 일일이 확인하기 어려울 경우가 있는데 이때 ls() 함수를 사용하면 현재 만들어진 객체를 모두 확인 가능
> ls()
[1] "dat" "dat2" "dat3" "nadat" "order" "var" "var1" "var2" "w1" "x" "y"
rm( ) _ 모든 객체 삭제
- 생성된 모든 객체를 지우고 싶다면 다음을 수행
> rm(list=ls())
> ls()
character(0)
'통계・데이터과학 > R 컴퓨팅' 카테고리의 다른 글
R 데이터 구조(1) _ 백터, 행렬의 특성 및 연산 (0) | 2025.03.04 |
---|---|
R 패키지 설치, R 스튜디오 활용, 기타 고급기능 (0) | 2025.03.02 |
R 특징, 설치법, 명령문 활용, 벡터 생성 및 연산 (0) | 2025.03.01 |