Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Outlier
- KoNLP
- DataFrame
- matplotlib
- IterativeImputer
- countplot
- 파이썬
- interpolate
- BDA
- Python
- 불용어
- 대치법
- 선형보간
- sklearn
- value_counts
- join
- 보간법
- 이상치
- 결측치
- 결측치대체
- subplots
- koNLPy
- 누락값
- Boxplot
- 데이터프레임
- SimpleImputer
- MSE
- stopwords
- 전처리
- Seaborn
Archives
- Today
- Total
ACAIT
[R] 빅데이터 분석 실무 2차시_벡터, 행렬, 배열, 리스트, 데이터프레임 본문
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 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 | rm(list=ls()) ### 02_필수 기본 문법 ### section 01_ 변수와 여러 가지 데이터 유형들 var1 = 1 var2 = 2 var3 = "홍길동" var4 = as.Date("2018-10-10") var5 = "R is very interesting" var1 var2 var3 var4 var5 # 변수명은 영어+숫자가 기본, 예약어 불가, 띄어쓰기 불가, 대소문자 구분. # 약칭으로 써도 풀로 읽는 게 중요하다. # var = variable 등. bd = as.Date('1999-10-01') today = as.Date('2023-06-27') var6 = today - bd var6 difftime(today, bd) # 날짜끼리 빼는 함수 # 날짜와 관련된 패키지 활용하기 install.packages('lubridate') library(lubridate) lubridate:: # 패키지:: -> 드롭박스로 종속함수들 나온다. date3 = lubridate::now() year(date3) # date3를 함수의 인자값으로. month(date3) day(date3) hour(date3) minute(date3) # NA, NULL 확인하기 sum(1, 2, NA) # 결과 -> NA sum(1, 2, NULL) # 결과 -> 3 # NA값 제거하는 방법 -> na를 remove sum(1, 2, 3, NA, 4, 5, na.rm = T) # 점표기법: 종속함수 as, sys, 별칭 등 하위에 있는 종속함수 등을 호출하는 것. 하위에 있는 건 종속함수일 수도 있고, 실행 가능한 코드 조각일 수도 있다. # 콜론 두 개: 사용된 함수의 소속을 표시하는 것. 표현식. :: 없어도 함수 호출에는 문제 없는데 구분을 위해 사용함. (ex. lubridate::now() -> now() 함수가 lubridate() 패키지 소속임을 확인하는 것.) # 파이 3.141592... -> statement 실행 가능한 코드 조각. # 여러 건의 데이터 # vector, matrix, array # 벡터, 행렬, 배열 # 벡터: 1차원 배열(x), 일렬로 나열 # 행렬: 2차원 배열(x, y) # 배열: 3차원 배열(x, y, z) # 차원이 높을수록 데이터 탐색이 용이. 좌표값을 이용하면 되기 때문. # ex) 20230305.xlsx 매출일보 엑셀 파일로 3년치 계산해 달라. -> R에서 계산하려고 엑셀 이용해 행렬 만들고 980층짜리 3차원 배열로 만들어내서 코드로 계산. ## vector, 벡터 # c() -> concatenate, connet. 벡터화. 벡터1 = c(1, 2, 3) 벡터2 = c(4, 5, 6) # 벡터 길이가 같으면 각 자리끼리 연산. 벡터1 + 벡터2 벡터1[1] + 벡터2[2] # 인덱스 1부터 시작. # 한 개의 변수에 여러 건의 데이터 보관소 = c('자전거1', '자전거2', '자전거3', '자전거4') 보관소[1] # index number # 벡터 여부 확인하기 is.vector(보관소) # 결과 -> TRUE is.array(보관소) # FALSE is.matrix(보관소) # FALSE 보관소[-1] # "자전거2" "자전거3" "자전거4" 보관소[2:3] # "자전거2" "자전거3" 보관소[-1:-2] # "자전거3" "자전거4" '자전거1' %in% 보관소 # 벡터 안에 해당 값이 있는가? 결과 -> TRUE length(보관소) # 길이 # vector 관련 함수 union() # 합집합 setdiff() # 차집합 intersect() # 교집합 ## matrix, 행렬 -> 칸 모두 채워져야 함. # variable = function(argument) mat1 = matrix(c(1,2,3,4)) mat1 # [,1] # [1,] 1 # [2,] 2 # [3,] 3 # [4,] 4 mat2 = matrix(c(1,2,3,4), nrow=2) # nrow -> 행 개수. 초과 행은 다음 열로. mat2 # [,1] [,2] # [1,] 1 3 # [2,] 2 4 mat3 = matrix(c(1,2,3,4,5), nrow=2) mat3 # [,1] [,2] [,3] # [1,] 1 3 5 # [2,] 2 4 1 -> 문제 있는데 에러는 안 만들고 불필요한 값 추가. mat4 = matrix(c('가', '나', '다', '라'), nrow = 2) mat4 # [,1] [,2] # [1,] "가" "다" # [2,] "나" "라" mat2 mat4 mat4[1,1] mat4[2,1] c(mat4[1,1],mat4[2,1]) mat5 = matrix(c(1:20), nrow=4) mat5[c(1,3), c(2,3)] ## array, 3차원 배열. # dim=c(가로, 세로, 높이이) array1 = array(c(1:12), dim=c(2,2,3)) array1 # , , 1 # [,1] [,2] # [1,] 1 3 # [2,] 2 4 # , , 2 # [,1] [,2] # [1,] 5 7 # [2,] 6 8 # , , 3 # [,1] [,2] # [1,] 9 11 # [2,] 10 12 ## list, 리스트 = 연속된 데이터의 나열 장바구니 = list( c('사과','배추','감자'), c('양파','가지','사과'), c('당근','양파','호박')) 장바구니 # [[1]] # [1] "사과" "배추" "감자" # [[2]] # [1] "양파" "가지" "사과" # [[3]] # [1] "당근" "양파" "호박" is.list(장바구니) is.vector(장바구니) # 연속 데이터 나열, 벡터에 리스트 있는 것. unlist(장바구니) # list를 벡터화. unlist(장바구니)[7] # 결과 -> 당근 # 단순 집계하기 # table() -> 종류별 집계 함수 table(unlist(장바구니)) # 가지 감자 당근 배추 사과 양파 호박 # 1 1 1 1 2 2 1 장바구니[1] # [[1]] # [1] "사과" "배추" "감자" 장바구니[[1]] # [1] "사과" "배추" "감자" print(장바구니[[1]][3]) # 결과 -> 감자 ## Data Frame, 표 또는 table # 열의 또다른 이름: 특성, 애트리뷰트, 속성, 시리즈, 변수(학년 = c(1,2,3)으로 표현 가능하므로) 등 # 조회나 합치기(merge)는 크게 중요하지 않아서 넘어갈 예정. # merge(d1, d2) -> 교집합, merge(d1, d2, all=T) -> d1 기준, 모든 값. 없는 건 NA로. 번호 = c(1,2,3) 이름 = c('누리', '마루', '초코') 학과 = c('세무', '회계', '데사') 학생명단 = data.frame(번호, 이름, 학과) 학생명단 학생명단$이름 # rbind(기존 데이터프레임, 추가할 행 벡터) 학생명단 = rbind(학생명단, c(4,'연탄','유딩')) 학생명단 # cbind(기존 데이터프레임, 컬럼명 = 추가할 열 벡터) 학생명단 = cbind(학생명단, 학년 = c(1,2,3,4)) 학생명단 # 숫자형과 문자형 데이터 표기 방식 ex1 = c(1,2,3,4,5) ex1 ex2 = c("연탄", '마루') # 따옴표 종류 상관없음. ex2 ### section 02_다양한 형식의 데이터 불러오기와 저장하기 # 다양한 형식의 데이터 불러오기 # 1) 텍스트 데이터 불러오기 # step1. 텍스트 데이터 생성 # step2. 텍스트 데이터 탐색과 불러오기 setwd("c:\\temp\\R") setwd("c:/temp/R") getwd() list.files() # 확장자 없으면 폴더 txt1 = readLines('구매후기.txt') print(txt1) # incomplete final line found on -> 맨 마지막 문장에서 엔터 쳐 주면 오류 없음. 텍스트 파일 작성하고 마지막 줄 엔터 필수. # txt 파일 기본 인코딩 유니코드 -> ANSI # UTF-8 파일로 저장했을 경우 인코딩 오류 해결 -> readLines('파일', encoding='UTF-8') | cs |
'전공 및 코드 > R프로그래밍' 카테고리의 다른 글
[R] 빅데이터 실무 분석 3차시_wordcloud(), RColorBrewer() (0) | 2023.06.28 |
---|---|
[R] 빅데이터 실무 분석 3차시_사용자 정의 함수, 조건문, 반복문, 정규식, 문자열, stringr() (0) | 2023.06.28 |
[R] 빅데이터 분석 실무 1차시_변수, 함수, 함수의 호출(점 표기법) (0) | 2023.06.27 |
[R] 221206_한 학기 복습 (0) | 2022.12.06 |
[R] 221205_예제 복습 (0) | 2022.12.05 |