오늘은 심흥섭 교수님의 강의 중에서 제 13강 데이터의 구분/벡터의 속성, 14강 요인/행렬, 15강 배열/리스트 총 3가지 강의를 들었다. 3개의 강의가 상당히 연속성이 있는 강의로 느껴졌다. 뭔가 Python이 상대적으로 쉬운 언어라는 얘기를 들은 적이 있는데, 맞는 말인 거 같다 ?!
제 13강. "데이터의 구분/벡터의 속성"
a) 벡터(Vector)의 속성
"데이터의 유형" + "원소(element)의 개수" + "원소(element)의 이름"
1) 데이터 유형을 확인하는 방법: mode(v), is.numeric(v), is.character(v), is.logical(v), is.complex(v)
2) 원소의 개수 확인하는 방법: length(v)
3) 원소의 이름은 새롭게 부여하는 방법: names() --> 추가로 이름 확인할 수도 있음!
b) 벡터의 인덱싱(indexing): 일부 원소를 추출할 때 사용 --> v[]를 이용한다(대괄호).
c) 벡터의 연산: 수치형 벡터로 된 두 개 이상의 벡터 간에 사칙연산이 가능!!
1) Vector의 길이가 동일한 경우라면 각각 자리수에 맞추어서 계산!
2) Vector의 길이가 동일하지 않는 경우라면 "재사용 규칙(recycling rule)"에 맞추어서 길이가 적은 쪽에 추가적으로 eleemnt를 더 생성해서 숫자를 맞추어서 계산해준다!
--> 추가적으로 배수 관계가 아니라면 "경고 메세지"를 같이 발생시켜 줌!
제 14강. "요인/행렬"
a) 요인(Factor): 범주형 자료로 인식 가능!!
- factor(): 요인을 생성
- levels(f): f를 구성하는 집단의 이름을 확인
- labels를 이용하여 집단에 이름을 변경해 줄 수 있음
b) 행렬: vector, factor가 1차원의 개념이라면 수학 시간에 배웠던 행렬은 2차원의 개념으로 생각!!
- 행(row)과 열(column)으로 구성됨. 벡터와 동일하게 하나의 데이터 유형만 가질 수 있음.
- 행렬을 형성하는 함수들
(1) rbind(v1, v2, v3 ... ): 행으로 합쳐서 하나의 행렬로 만들며, "벡터의 개수=행의 개수"
(2) cbind(v1, v2, v3 ...): 열로 합쳐서 하나의 행렬을 만들며, "벡터의 개수=열의 개수"
(3) matrix(vector, nrow=x, ncol=y): x행 y열인 행렬이며, 값이 열 방향으로 우선 입력
vs.
matrix(vector, nrow=x, ncol=y, byrow=TRUE): x행 y열인 행렬이며, 값이 행 방향으로 우선 입력
제 15강. "배열/리스트"
a) 배열(array): 데이터가 마침내 3차원 이상으로 구성할 수 있음! 그러나 여전히 데이터의 유형은 한나만 가질 수 있음!
- 생성은 array() 함수를 이용하며, 내부의 dim으로 차원을 결정할 수 있다.
b) 리스트(list)
벡터, 요인, 행령, 배열, 데이터 프레임(data frame)과 리스트 자체까지도 원소로 포함할 수 있는 큰 개념.
- list()함수를 사용하여 만들 수 있으며, 동일하게 []로 데이터를 추출할 수 있다! (indexing하는 것과 같이)
확실히 많은 양의 데이터를 처리하는 데에 유용한 프로그램인 느낌이다. 좀 더 열심히 남은 기간 공부를 해야겠다.
'영상의학 (Radiology) > 빅데이터 (Big data)' 카테고리의 다른 글
Big data_day 07 (빅 데이터 공부 7 일차) (0) | 2020.06.04 |
---|---|
Big data_day 06 (빅 데이터 공부 6일차) (0) | 2020.06.03 |
Big data_day 04 (빅데이터 공부 4일차) (0) | 2020.06.01 |
Big data_day 03 (빅데이터 공부 3일차) (0) | 2020.05.31 |
Big data_day 02 (빅데이터 공부 2일차) (0) | 2020.05.31 |