[R] 3. R 외부 파일 데이터 가져오기(read.table, readLines, scan)


R과 RStudio를 설치 했으니, 데이터를 다루기 위한 아주 기초적인 데이터를 불러오고 저장하는 수준의 맛만 보는 포스팅이다.



벡터(vector)


R에서는 사용하는 기본적인 데이터 셋의 형태를 벡터(vector)라고 한다. 하나 이상의 숫자, 문자 등의 집합을 벡터(vector)라고 한다. 벡터를 행과 열로 가지는 표 형식으로 확장한 것이 행렬(matrix)이다. 또한, 벡터의 집합을 원소로 가지는 데이터의 형태를 리스트(list)라 하고, 리스트에 포함된 벡터의 길이가 모두 같을 때 이를 데이터프레임(data frame)으로 취급할 수 있다.

함수 c()를 이용하여 원시 자료 입력 방식을 통해 R에서 벡터를 만들 수 있다.



getwd(), setwd()


R에서 작업하는 경로를 설정해서 외부파일들을 사용할 때 사용된다.

  • getwd() - 현재 설정 된 워킹 디렉토리 확인
  • setwd(“경로”) - 새로운 워킹 디렉토리 설정
getwd()
[1] "C:/R/data"
> setwd("C:/R/data")
> getwd()
[1] "C:/R/data"



원시 자료 입력


데이터 값을 직접 입력하여 저장하는 것을 원시 자료 입력이라 한다.

  • c() : 데이나 객체를 결합함
> c(23, 51, 74, 54, 78, 37, 64, 91, 55, 14, 82, 11, 19, 45, 69)
 [1] 23 51 74 54 78 37 64 91 55 14 82 11 19 45 69
> x1 <- c(23, 51, 74, 54, 78, 37, 64, 91, 55, 14, 82, 11, 19, 45, 69)
> View(x1)


rstudio-3-s1



외부 파일 데이터(.txt)


test.txt

23 51 74 54 78 37 64 91 55 14 82 11 19 45 69

test2.txt

23 51 74 54 78
37 64 91 55 14
82 11 19 45 69



read.table(), read.csv()


외부 데이터 파일 가져오는 함수 read.table과 read.csv이며, 두개 모두 테이블 형식으로 되어있어야 합니다.

  • read.table(“파일명.txt”, header = FALSE, sep = “{구분자}”)
  • read.csv(“파일명.csv”, header = F)
> read.table("test.txt", header = FALSE, sep = " ")
  V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15
1 23 51 74 54 78 37 64 91 55  14  82  11  19  45  69
> x2 = read.table("test.txt", header = FALSE, sep = " ")
> View(x2)


rstudio-3-s2



readLines()

외부 텍스트 파일를 각 줄로 읽어서 저장

  • readLines(“파일명”)
readLines("test.txt")
[1] "23 51 74 54 78 37 64 91 55 14 82 11 19 45 69"
> x3 <- readLines("test.txt")
> View(x3)
> readLines("test2.txt")
[1] "23 51 74 54 78" "37 64 91 55 14" "82 11 19 45 69"
> x4 <- readLines("test2.txt")
> View(x4)


rstudio-3-s3

rstudio-3-s4



scan()


외부 텍스트 파일을 공백(구분자) 기준으로 읽어서 저장

  • scan(“파일명”)
> scan("test.txt")
Read 15 items
 [1] 23 51 74 54 78 37 64 91 55 14 82 11 19 45 69
> x5 <- scan("test.txt")
Read 15 items
> View(x5)


rstudio-3-s5


문자열을 데이터로 입력 시

> scan("test.txt", what = "character")


구분자 사용시

> scan("test.txt", sep = ",", what = "character")
> scan("test.txt", sep = "임의값", what = "character")



데이터를 사용하기 위해 R에 맛만 보는 포스팅입니다.




[참고]

  • https://issactoast.com/64
  • https://allaboutmoon.tistory.com/entry/R에서-데이터-불러오기저장하기
  • https://kim-mj.tistory.com/35