獨斷論

통계 R 사용설명서 2 - 텍스트 파일의 데이터 불러오기 본문

과학과 기술/R 통계

통계 R 사용설명서 2 - 텍스트 파일의 데이터 불러오기

부르칸 2016. 2. 3. 01:20

GNU R에서는 SPSS같은 메뉴방식의 소프트웨어와는 달리 데이터를 불러오는데 주의를 요한다. SPSS는 데이터를 불러오면서 각 단계마다 제대로 불러왔는지 확인할수있지만 R은 그렇지 못하다.

 

R에서 텍스트 파일로 작성된 데이터 파일을 읽어들이기 전에 notepad같은 프로그램으로 열어서 다음 두 가지를 기억해 두어야 한다.

  1. 각 변수값들을 구별하는 문자는 무엇인가?
    예를 들어 쉼표, 공백, 탭문자..
  2. 데이터파일의 첫줄에 변수명이 들어가 있는가 없는가?
    이는 R에서 header라고 명명할 것이다.

우선 아래 데이터 파일을 내려받아서 각자의 컴퓨터 하드디스크에 저장하자.

이때 저장한 디렉토리 경로명은 기억해두어야만 한다.

파일:

For2000.csv
다운로드

 

위 파일을 notepad같은 텍스트 편집기에서 열면 아래와 같은 형태이다.

 

 

첫줄은 딱봐도 데이터의 각 변수를 나타내는 문자열이다.

그리고 각 변수를 구별하는 것은 쉼표이다.

 

이제 이를 불러들이기 위하여 read.table이라는 함수를 이용하면 된다.

 

1
2
3
4
5
6
7
 > setwd("c:\\Temp")
 > getwd()
 [1] "c:/Temp"
 > dir()
 [1] "For2000.csv"
 > Forbesdata <- read.table("For2000.csv", header = TRUE, sep = ",")
 > View(Forbesdata)

 

1번 줄에서 현재 작업디렉토리를  c:\Temp로 바꾸었다. 이 디렉토리에 위에서 내려받은 파일이 존재해야만 한다.

2번째 줄에서 제대로 디렉토리가 바뀌었는지 현재 작업디렉토리를 보여주었다.

4번째 줄에서 현재 작업디렉토리의 파일들을 나열해보았는데 이때 열고자하는 파일명을 숙지해두어야 한다. For2000.csv를 철자하나 틀리지 않고 제대로 입력해야하기때문에... ㅋㅋ

6번째 줄에서 read.table()함수를 이용하여 For2000.csv의 내용을 Forbesdata라는 변수에 집어넣었다. header=TRUE라는 것은 For2000.csv파일의 첫번째 줄에 변수명이 존재할때 사용한다. 만약 변수명이 없이 그냥 데이터만 있을때에는 header=FALSE라고 하면된다. sep=","는 각 변수를 쉼표로 구분한 파일이라는 것을 R에게 알려주는 것이다.

만약 현재 작업디렉토리에 없는 파일의 데이터를 불러들이기를 원한다면 read.table()에서 디렉토리 명까지 명기해주면 된다. 예를 들면 아래와 같다.

 

1  > Forbesdata <- read.table("c:\\Temp\\For2000.csv", header = TRUE, sep = ",")

 

주의해야할 것은 디렉토리를 표기할때 \\처럼 역슬레쉬를 두개 해야한다는 것..

 

지금까지 read.table을 써서 csv파일을 읽는 방법을 알아보았지만 csv파일은 데이터를 저장하는데 아주 많이 사용되는 텍스트 파일이므로 이것만을 위한 함수가 따로 존재한다.

 

1  > Forbesdata <- read.csv("For2000.csv")

 

만약 데이터파일의 각변수를 쉼표가 아니라 공백이나 탭으로 구분하였다면 sep=","를 바꾸면 된다. 그런데 공백으로 구분하는 경우 공백이 하나냐 두개냐에 따라 될때도 있고 안될때도 있으므로 공백으로 구분하는 것은 추천하지 않는다. csv로 하는게 가장 좋다.

 

1
2
 > Forbesdata <- read.table("c:\\Temp\\For2000.csv", header = TRUE, sep = " ")
 > Forbesdata <- read.table("c:\\Temp\\For2000.csv", header = TRUE, sep = "\t")

 

 

Comments