-----------------------------------------------------------------------
내 첫 블로그 게시글!
천문학과를 졸업하여 현재는 의료데이터를 만지면서 놀고있지만
나에게도 남들에게도 조금은 도움이 되는 일을 해보고자
데이터사이언스 관련글을 블로그로 남기기로 했다!
사실 나도 잘 모른다! 하면서 배우는거일 것이니,,
-----------------------------------------------------------------------
#출처: r을 이용한 데이터분석 실무, 지은이: 서민구
R 변수
-
변수를 다룰 때 큰 틀의 특징
-
1부터 counting
-
언제나 위에서 아래로 row가 기준
-
행렬 내의 순서를 제외 (위에서 아래로 -> 열 기준)
-
각함수의 사용법은 ‘?함수’를 통해 search
-
데이터 프레임 형식의 dimension이 1이 되면 자동으로 벡터형으로 변환, 떨굼
-
이를 방지하려면 drop= FALSE로 지정
-
변수
-
되도록 ‘=’보다 ‘<-’를 권장, 에러가 나기 때문에
-
주로 벡터형이 기본
-
기본 함수
-
dim(): dimension
-
str(): data type
-
class(): class type
-
head(): 6 lines of the date from the first line
-
rm(list=ls()): 저장된 변수 제거
-
factor
-
범주형 변수를 위한 데이터타입
-
ordered=TRUE -> 순서가 있는 범주형으로 인식
-
ex) sex <- factor(c(‘a’,’b’),ordered = TRUE)
-
vector
-
r에서 데이터의 기본형, 중첩이 불가능 -> 이 때, list를 사용
-
seq(start,end,by)
-
vector의 이름 붙여주는 함수: names(vector)
-
seq_len(N): 1~N까지 숫자형 벡터 반환
-
seq_along(vector): vector길이만큼의 1~길이까지의 숫자형 벡터 반환
-
rep(start:end,repeat number)
-
ex) rep(1:3,2) -> c(1,2,3,1,2,3)
-
rep(start:end,each=N)
-
각각 N회 반복됨
-
ex) rep(1:2, each=3) -> c(1,1,1,2,2,2)
-
indexing: 벡터의 요소에 접근하기
-
숫자접근/벡터/이름 접근 가능
-
ex) x[1]= 1
-
x[-1]: 첫번째 요소를 제외하고 반환
-
python과 다름 ‘-’기호는 제외를 의미
-
ex) x[1:3]
-
ex) x[c(1,2,3)]
-
ex) x[Sepal.Length]
-
vector 길이
-
length(), NROW(): 벡터의 길이
-
nrow(): 행렬에서만만 가능 (길이)
-
vector 연산
-
%in%: 벡터안에 그 값이 있나 확인
-
차집합: setdiff(c(1,2,3),c(1,3)) -> c(2)
-
합집합: union(c(1,2,3),c(4)) -> c(1,2,3,4)
-
교집합: intersect(c(1,2,3),c(2,3)) -> c(2,3)
-
집합간 비교: setequal(c(1,2,3),c(1,2,3,4)) -> TRUE
-
list: N차원 벡터
-
다른 언어에서 흔히보는 dictionary에 해당, (키,값)을 담는 associated array(연관배열)이다.
-
ex) x <- list(name=’foo’,height=c(50,30,50))
-
x[[1]] -> ‘foo’
-
x[1] -> name
-
matrix
-
모든 요소가 숫자일때만 사용가능함
-
ex) matrix(1:9,nrow=3)
-
첫번째 자리는 vector형식이면 다 들어가도된다.
-
이럴 때, column기준으로 숫자가 채워지는데 row를 기준으로 하고 싶다면 byrow=TRUE로 켜주면 된다.
-
ex) matrix(1:9,nrow=3,byrow=TRUE)
-
matrix의 행과 열에 이름 부여
-
matrix(1:9,nrow=3,dimnames=list(c(‘row1’,’row2’,’row3’),c(‘col1’,’col2’,’col3’))
-
indexing
-
숫자와 행렬로 indexing할때는 row나 column 둘 중 하나만 사용해도 되고 둘 다 사용해도 됨, 하지만 name으로 indexing하는 경우 둘 다 채워줘야 함
-
연산
-
곱셈 *, 나눗셈 /, 덧셈 +, 뺄셈 -
-
행렬끼리의 곱셈 %*%
-
역행렬 solve(matrix)
-
대각행렬:t()
-
행렬차원: ncol(), nrow()
-
array(배열)
-
N차원 행렬
-
ex) array(1:12,dim=c(2,2,3))
-
차원을 알고 싶을 때: dim(vector,matrix,array)
-
data frame
-
가장 중요한 자료형, 행렬과 마찬지의 모습이지만 관측치와 범주등을 표현하기에 특화되어 있음
-
a <- data.frame(x=c(1,2,3,4),y=c(2,3,4,5)) 기본 표현법
-
data.frame에 열을 추가 하고 싶을 때 -> a$z = 1:4
-
데이터 차원이 1차원으로 변경되어 자동으로 벡터 변환이 되는 것이 싫을 때
-
drop= FALSE 사용
-
ex) a[1,,drop=FALSE]
-
데이터 형을 보고 싶을 때 -> str(data frame name)
-
일부분만 살펴보기 위해 -> head(data frame name)
-
칼럼명이 있는지 찾아보기
-
칼럼명 b,c가있는지 찾아보기: a[,names(a) %in% c(‘b’,’c’)
-
데이터 타입 판별 및 변환
-
판별 -> class(),is.numeric(), is.matrix()
-
변환 -> matrix, list를 data.frame으로 변환할때는, data.frame안에 넣으면 됨
-
ex) data.frame(matrix(c(1,2,3),ncol=3))
변환 as함수 -> as.numeric, as.factor, as.data.frame, as.matrix
'R > 기초' 카테고리의 다른 글
R 새로운 종류의 Plot (0) | 2019.08.13 |
---|---|
R 데이터 plot 함수 (0) | 2019.08.13 |
R 데이터 조작 II (0) | 2019.08.13 |
R 데이터 조작 I (0) | 2019.08.12 |
R에서 사용하는 제어문, 함수, 그에따른 연산 (0) | 2019.08.12 |