일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- seq
- length
- scraping
- Names
- REP
- 변수 선언
- 정규표현식
- ROTTEN TOMATOES
- c()
- Data Structure
- CSV
- TXT
- 데이터 입출력
- 데이터 타입
- vector 비교
- 스크래핑
- Crawling
- 데이터 타입의 우선순위
- 함수
- R 기초
- data frame
- :
- 문자열처리
- factor
- working directory
- stringr
- 연습문제
- 네이버 영화 댓글
- R 개요
- vector 연산
- Today
- Total
study blog
데이터 입출력 - txt, csv, xml, json, excel 본문
# 키보드로 데이터 받기
① scan() : 숫자 데이터를 받을 수 있음 (실수)
myNum <- scan() # vector 형태. 더 이상 입력하지 않으려면 Enter 한 번 더
scan()을 이용해서 문자열도 입력받을 수 있음 (default값은 실수. 문자열도 가능)
var1 = scan(what=character())
② edit(): 데이터프레임을 수정해서 입력하는 형태
var1 = data.frame()
df = edit(var1)
# 파일 읽어들이기 (txt, csv, xml, json, excel)
① text 파일 읽어들이기
text 파일에 ","로 구분된 데이터들을 읽어들여보자.
- read.table() 이용
setwd(str_c(getwd(),"/data")) # 파일 있는곳으로 경로 설정
student_midterm = read.table(file="student_midterm.txt",sep =",", fileEncoding="UTF-8") #sep: 파일 데이터 구분자
#file에 header가 있는 경우
student_midterm = read.table(file="student_midterm.txt",sep =",",
fileEncoding="UTF-8",header=T)
- choose() 이용: 파일 선택할 수 있음 → working directory 설정 안 해도 됨
student_midterm = read.table(file.choose(),sep =",",fileEncoding="UTF-8")
- 파일로부터 데이터를 읽어들일 때 일반 txt형식은 많이 사용되지 않음!
- 컴퓨터 간(프로그램 간)에 데이터를 주고 받으려고 한다
- 프로세스 간 데이터 통신을 하기 위해서 특정 형식을 이용해 데이터를 주고받음
② csv(comma seperated value): comma 기호를 이용해서 데이터를 구분
예) "홍길동, 20, 서울, 김길동, 30, 부산, 최길동, 50, 인천, ..."
- csv 방식의 장점: 간단함. 부가적인 데이터 적음. / 상대적으로 크기가 작음 → 많은 양의 데이터 처리 가능
- csv 방식의 단점: 구조적 데이터를 표현하기에 적합하지 않음. ex) 중첩, 중첩된 데이터 표현 X
→ parsing작업이 복잡(데이터를 프로그램에서 사용할 수 있게 변환하는 과정)
→ 유지보수에 문제가 발생함.
read.table() # sep가 있어야 함
read.csv() # sep가 ","이기 때문에 생략. header=T가 기본
df = read.csv(file.choose(), fileEncoding="UTF-8")
③ XML 방식: tag를 이용해서 데이터를 표현하는 방식 - csv의 단점 해결
예)
<name>홍길동</name><age>20</age><address>서울</address>
<phone>
<mobile>010-1111-2222</mobile>
<home>02-342-0000</home>
</phone>
→ 중첩구조 가능
- XML의 장점: 구조적 데이터를 표현하기에 적합. 사용하기 편리. 데이터의 의미 표현 가능
- XML의 단점: 부가적인 데이터 너무 큼
④ JSON (JavaScript Object Natation) - 구조적 데이터를 표현하면서 size 줄이자!
예) {name: "홍길동", age: 20, adrress: 서울, ...} # 앞의 값: key, 뒤의 값: value
- 구조적 표현이 가능하면서 xml보다 크기가 작음 -1,2의 장점 합친 것
⑤ excel
xlsx package 설치하고 로딩하기
install.packages("xlsx")
library(xlsx)
student_midterm <- read.xlsx(file.choose(),
sheetIndex = 1, # 첫번째 시트에서 가져온다
encoding = "UTF-8")
# 처리된 결과를 file에 write하기
① write.table() : data frame을 file에 저장 //read.table()은 파일을 데이터 프레임 형식으로 가져옴
write.table(student_midterm,
file="C:/R_lecture/data/report.txt",
row.names=F, # 행번호 삭제
quote =F, # "" 삭제
append=T)
② cat() : 분석결과(vector)를 file에 저장
cat("처리된 결과는:","\n","\n", #\n: 줄바꿈
file="C:/R_lecture/data/report.txt", # 파일 없으면 새로 만듦
append=T) # append=T 기존파일에 추가. append 없으면 파일 삭제하고 다시만듦
③ capture.output() : 분석결과(List, table)을 file에 저장
capture.output(summary(student_midterm),
file="C:/R_lecture/data/report.txt",
append=T)
'R > 1. R 기초' 카테고리의 다른 글
제어문 - 조건문(if, ifelse) & 반복문(for, while) / 사용자 정의 함수 (0) | 2020.01.10 |
---|---|
String - stringr 패키지를 이용한 문자열 처리 (0) | 2020.01.08 |
Data Structure 2 - list, data frame, factor (0) | 2020.01.08 |
Data Structure 1 - vector, matrix, array (0) | 2020.01.07 |
Package (0) | 2020.01.06 |