일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 생물정보학
- R
- 에리히 프롬
- 젖비단그물버섯
- RStudio
- 영화
- 생명과학 균학 미생물학 Biology Mycology Microbiology
- 청도요
- 계묘년
- 토양미생물학
- mushroom #mushrooms #mushroomhunting #mushroomphotos #mushroomphotography #mycology #mycologist #fungi #fungalecology #fungaldiversity #fantasticfungi #버섯 #탐균 #버섯탐사
- 영화 일기
- 둠칫새
- 더 웨일
- 영화 해석
- 대학원생
- Rstuido
- 곤줄박이
- 바운새
- 파이썬
- 철학
- 갓생
- 토양학
- 영화 리뷰
- 영화 후기
- 탐조
- 외생균근균
- Cannon PowerShot G7 X Mark III
- 심리학
- 코딩
Archives
- Today
- Total
워라밸 중독자
[R] 데이터프레임 쓰기 및 읽기 - read.table(), write.table() 본문
데이터프레임 읽기 및 쓰기
보통 다루게 되는 데이터프레임 파일은 csv, tsv, txt 정도이고, 엑셀 파일을 쓰거나 읽을 일은 거의 없다.
데이터프레임은 write.csv(), write.table()를 이용해 내보내거나 read.csv(), read.table()을 이용해 불러오게 되는데, 여기서는. csv() 나. table()이나 큰 차이 없으므로. csv() 함수들은 제외했다.
데이터프레임 읽기
read.table()
이 함수는 다음과 같이 사용하여 파일을 불러온다.
read.table(file, sep, header, row.names, stringsAsFactors, encoding)
- file: 불러올 파일의 이름 또는 경로 (하위 디렉토리를 표시할 땐 슬래쉬 / 를 쓴다)
- sep: 텍스트 구분 기호. csv 파일일 경우 sep = ",", txt 또는 tsv 파일일 경우 sep = "\t"
- header: 첫 행을 열 이름으로 쓸 경우 header = T
- row.names: 첫 열을 행 이름으로 쓸 경우 row.names = 1
- stringsAsFactors: 문자열을 factor로 불러올 것인지? character로 불러올 경우 stringsAsFactors = F
* 데이터를 불러오게 되면 기본적으로 문자열은 factor로 불러오게 되는데, factor는 연산이 불가능하므로 stringsAsFactors = F 를 써야 한다. - encoding: 한글이 포함된 파일을 불러올 때 한글이 깨질 경우 encoding = "UTF-8" 또는 encoding = "cp949"
file은 다음 세 가지 방법으로 지정할 수 있다.
# working directory 지정 후 파일 불러오기
> setwd("C:/파일 위치")
> x <- read.table("file.csv", sep = ",")
# 파일의 절대 경로로 불러오기
> x <- read.table("C:/파일 위치/file.csv", sep = ",")
# 파일 탐색기를 열어서 직접 불러오기
> x <- read.table(file.choose(), sep = ",")
# 결과 확인
> x
X V1 V2 V3 V4 V5 V6
1 A 1 6 11 16 21 26
2 B 2 7 12 17 22 27
3 C 3 8 13 18 23 28
4 D 4 9 14 19 24 29
5 E 5 10 15 20 25 30
> class(x)
[1] "data.frame" # 데이터 프레임으로 불러오게된다.
일반적으로 열과 행 이름이 모두 있는 경우 다음의 매개변수 설정을 쓴다.
> read.table("C:/파일 위치/file.csv", sep = ",", header = T, row.names = 1, stringsAsFactors = F)
V1 V2 V3 V4 V5 V6
A 1 6 11 16 21 26
B 2 7 12 17 22 27
C 3 8 13 18 23 28
D 4 9 14 19 24 29
E 5 10 15 20 25 30
Tab으로 구분된 tsv 또는 txt 파일을 불러올 경우
# sep 매개변수 설정하지 않고 tsv 파일을 불러올 경우 망한다.
> read.table("C:/파일 위치/file.tsv", header = T)
V1.V2.V3.V4.V5.V6
1 A\t1\t6\t11\t16\t21\t26
2 B\t2\t7\t12\t17\t22\t27
3 C\t3\t8\t13\t18\t23\t28
4 D\t4\t9\t14\t19\t24\t29
5 E\t5\t10\t15\t20\t25\t30
# sep = "\t"로 설정하여 tsv 파일을 불러올 경우
> read.table("C:/파일 위치/file.tsv", sep = "\t", header = T, row.names = 1, stringsAsFactors = F)
V1 V2 V3 V4 V5 V6
A 1 6 11 16 21 26
B 2 7 12 17 22 27
C 3 8 13 18 23 28
D 4 9 14 19 24 29
E 5 10 15 20 25 30
데이터프레임 쓰기
write.table()
이 함수는 다음과 같이 사용하여 객체를 파일로 내보낸다.
write.table(x, file, sep, col.names, row.names, quote)
- x: 저장할 대상, 객체
- file: 객체가 저장될 파일의 이름 또는 경로
- sep: 텍스트 구분 기호. csv 파일일 경우 sep = ",", txt 또는 tsv 파일일 경우 sep = "\t"
- col.names: 첫 행을 열 이름으로 쓸 경우 col.names = T
- row.names: 첫 열을 행 이름으로 쓸 경우 row.names = T
- quote: 변수명과 문자열에 따옴표를 붙일지 결정. 따옴표 없이 쓸 경우 quote = F
일단 아래와 같이 데이터프레임을 하나 만들어보자.
> mat <- matrix(1:30, nrow = 5)
> df <- data.frame(mat, row.names = c("A","B","C","D","E"))
> df
X1 X2 X3 X4 X5 X6
A 1 6 11 16 21 26
B 2 7 12 17 22 27
C 3 8 13 18 23 28
D 4 9 14 19 24 29
E 5 10 15 20 25 30
일반적으로 열과 행 이름이 모두 있는 경우 다음의 매개변수 설정을 쓴다.
# df를 저장하기
write.table(df, "file.csv", sep = ",", col.names = T, row.names = T, quote = F)
'코딩, 딱 지금이 시작할때! (코딱지)' 카테고리의 다른 글
[R] 사용자 설치 패키지 모두 삭제 (0) | 2023.01.12 |
---|---|
[R] 인덱싱(indexing) - 데이터에서 원하는 값 추출 (0) | 2023.01.12 |
[R] 데이터 전처리 - 결합 (cbind, rbind, merge) (1) | 2023.01.07 |
[R] 2차원 데이터 구조 - 행렬(matrix)과 데이터프레임(dataframe) (1) | 2023.01.06 |
[R] 1차원 데이터 구조 - 팩터(factor)와 리스트(list) (0) | 2023.01.06 |