반응형
/*********************************************************************************************************
-- Title : [R3.3] 데이터/파일 읽기(Console, Text, Csv, Tsv, Excel, HTML) 및 쓰기
-- Reference : hrd-net
-- Key word : R 콘솔 console scan() edit() read.table() read.csv() choose() read.xlsx() java jre rjava write.csv() write.xlsx() sink()
읽기 쓰기 read write 파일 file xls xlsx 엑셀 excel csv tsv
*********************************************************************************************************/
-- R
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | # ******************************************** # -- 콘솔 입력(scan()) # ******************************************** # -- scan() 함수를 이용(숫자입력 ) x = scan() # Console창에서 입력하고 Enter를 두번. x # -- 합계 구하기 sum = sum(x) sum # -- 문자입력 y = scan(what="") y # ******************************************** # -- 편집기 입력(edit()) # ******************************************** # -- edit() 함수를 이용한 입력 df = data.frame() #빈 데이터프레임 생성 df = edit(df) # 데이터 편집기 df # ******************************************** # -- TXT 파일 읽기(read.table()) # ******************************************** # -- 탭 구분 파일 읽기 getwd() setwd("C:\\RProject\\HRD-Net\\R-Data\\Part-I") student0 = read.table(file="student.txt") # 컬럼명이 없는 파일 불러오기 student0 class(student0) student1 = read.table(file="student1.txt", header=TRUE) # 컬럼명이 있는 파일 불러오기 student1 # -- 특정 구분자 파일 읽기 student2 = read.table(file="student2.txt", sep=";", header=TRUE) student2 student3 = read.table(file="student3.txt", sep=" ", header=TRUE) student3 # -- NA값으로 치환 읽기 student4 = read.table(file="student3.txt", sep=" ", header=TRUE, na.strings="-") student4 h = student4$키 mean(h, na.rm=T) # NA를 통해 통계 처리 가능 student5=read.table(file="student33.txt", sep=" " # NA로 변환할 문자가 여러개 일 때 ,header=TRUE, na.strings=c("-", "&")) student5 # ******************************************** # -- CSV 파일 읽기(read.csv()) 및 직접 선택(choose()) # TSV 파일도 가능. # ******************************************** # -- read.csv() 함수 이용 student6 = read.csv(file="emp.csv", na.strings="-") student6 student7 = read.csv(file.choose(), sep=",", na.strings="-") # 탐색창 열기 student7 # ******************************************** # -- 엑셀 파일 읽기(read.xlsx()) # ******************************************** # -- JAVA JRE 경로 설정 # 설치 방법 : dbrang.tistory.com/1028 Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_112') # -- rJava를 로드하기 때문에 rJava 패키지 설치 필요 install.packages("rJava") library(rJava) # 로딩 # -- xlsx 패키지 설치(excel data 입출력 함수 제공) install.packages("xlsx") library(xlsx) # 로딩 # -- studentex.xlsx 파일 선택 studentex = read.xlsx(file.choose(), # 탐색창 열기 sheetIndex=1, encoding="UTF-8") studentex # ******************************************** # -- write.csv()를 이용한 파일 저장 # ******************************************** setwd('C:\\RProject\\HRD-Net\\R-Data\\Part-I') getwd() # -- csv 파일 쓰기 write.csv(student5,"student555.csv", row.names=FALSE) # 자동 행번호 미추가 write.csv(student5,"student556.csv", row.names=TRUE) # 자동 행번호 추가 s556 = read.csv('student556.csv', header=T) s556 # ******************************************** # -- sink() 함수를 이용한 파일 저장 # ******************************************** # -- 저장할 텍스트 파일명 설정(장치 오픈) sink("student5-new1.txt") # studentexcel.xlsx 파일 선택 studentx = student5 # 또는 = read.xlsx(file.choose(), sheetIndex=1, encoding="UTF-8") # -- 출력되는 값이 화면에 나타나지 않고 파일에 저장됨 studentx # -- 장치 해제 sink() # ******************************************** # -- write.table() 함수를 이용한 파일 저장 # ******************************************** head(student5) # -- 기본옵션으로 저장(컬럼명과 행ID, 문자에 따옴표 붙음) write.table(student5, "s55551.txt") # -- 행ID 제거하여 저장 write.table(student5, "s55552.txt", row.names=FALSE) # -- 따옴표 제거하여 저장 write.table(student5, "s55553.txt", row.names=FALSE, quote=FALSE) # -- 탭 구분자로 저장 write.table(student5, "s55554.txt", row.names=FALSE, quote=FALSE, sep="\t") # -- 특정 구분자로 저장 write.table(student5, "s55555.txt", row.names=FALSE, quote=FALSE, sep="@$$@") # ******************************************** # -- write.xlsx() 함수를 이용한 파일 저장 # ******************************************** # -- excel data 입출력 함수 제공 library(xlsx) # studentexcel.xlsx 파일 선택 st.df = read.xlsx(file.choose(), sheetIndex=1, encoding="UTF-8") st.df str(st.df) write.xlsx(st.df, "studentx55551.xlsx") # excel형식으로 저장 | cs |
-- 소스 파일
반응형