Data Science/R

인프런 R프로그래밍 기초 다지기 (21.01.03 ~ 05)

winney916 2021. 3. 21. 23:51
728x90

- R 소개 및 변수선언

변수 선언 방법은 두가지다. =, ->

데이터 타입에 대해서 조금 배웠다.

class(data) : return data type

as.character(data) : return data as character

as.numeric(data) : return data as numeric

- Vector 다루기

vector == column 이라고 생각하면 된다. 이걸 생성하는 함수는 c( )인데, 일종의 리스트 객체라고 생각해도 좋다. 리스트를 사용해야하는 모든 상황에서는 이 함수를 사용해야 한다.

c(1,2,3) == c(1:3) 이런식으로도 사용 가능하다.

() : function!, [] : index!

한 리스트에서 값을 가지고 올 때는 다양한 방식으로 접근할 수 있다.

1. index : 타 언어들과는 다르게 1부터 시작한다. index에 list를 넣을 수도 있다. 단, -를 붙인다면 해당 인덱스를 제외하고 가져온다.

2. boolean : TRUE, FALSE 값을 넣어서 해당 순서 (index)의 값을 가져올 수 있다.

3. 2번을 잘 활용하면, 수식을 넣어서 연산을 하는 것도 가능하다.

a[a%%2 == 2] : 짝수만 가져온다.

- Matrix 다루기 with data.frame

행렬을 다루는 방법이다. 데이터 프레임도 이와 유사한 기능인데, 한가지 다른 점이 있다면, Matrix는 모든 데이터의 타입이 동일해야한다. 반면에 데이터 프레임은 각각의 데이터들의 타입이 달라도 문제가 되지 않는다.

공통점으로는 [행,열] 형태로, 컴마를 기준으로 각 value에 접근할 수 있다는 것이다.

또, column(열)을 기준으로 접근을 하기 위해서 $ 표현을 사용할 수 있다. data$column_name

기존에 있는 column의 이름을 사용하면 접근하게 되고, 기존에 없는 이름을 사용하면 새로운 열을 만든다.

- cbind, rbind

위에서 $기호를 통해 column(열)에 접근했다면, 결합을 도와주는 함수가 있다.

cbind(matrix or data.frame, data) : column bind

rbind : row bind

** 도움말 활용법.

? something

이걸 실행시키면 도움말이 열린다! -> ㄹㅇ 개편하네 구글링 필요없는거잖아;;;;

- 반복문, 조건문

이번 파트를 공부하면서 느낀건, 확실히 R은 직관적이라는 거다. 파이썬보다 훨씬. 오로지 통계와 시각화에만 초점이 맞춰진 언어라서 그런거라고 생각한다. 표현이 단순해지는 만큼 기능성 또한 단순해지니까.

for (i in [list]){} : for문이 더욱 짧다

if () {} else{} : if문은 JS랑 느낌이 비슷하다.

next; : continue in python.

while(condition){ } : while도 크게 다르지 않다.

- 파일 읽고 쓰기

working directory 를 설정하는 함수가 있다.

getwd()

setwd("root/") : root를 설정할 때, 복붙을 하면 역슬래쉬가 나오는데, 이를 일반 슬래쉬로 바꿔줘야한다.

(역슬래쉬는 Escape Code 역할을 하기 때문)

나는 이걸 잘 했는데 왜 "작업디렉토리를 변경할 수 없습니다."라는 에러가 나왔는지 잘 모르겠다.

잘 안돼서 그냥 Tools/Global Options/ 에 들어가서 설정변경해줬다. ㅋㅋㅋ개편함

R에서 다루는 파일 형식은 여러가지가 있는데, 일단 두개 정도만 다뤘다.

1. csv. 스크래핑 할 때 많이 사용해본 형식이다.

write.csv(data, "name.csv", row.names = F) : row.names는 행렬을 출력할 때 맨 왼쪽에 나오는 순서(?)같은 아이인데, 그냥 저장하면 저게 같이 저장돼서 열이 하나 추가된다. 그 옵션의 디폴트가 TRUE라서 원치않는다면 바꿔줘야한다.

read.csv("name.csv")

csv는 불안정하다. 깨질 위험이 높음!

2. RData, 안정적이고 문법이 단순하다.

save(data, file="name.RData")

load("m2.RData")

로딩을 할 때 따로 변수지정을 해주지 않아도 로드가 된다. 아마 저장을 할 때, 변수명을 같이 저장하는 듯 하다.

- list 다루기

list가 좀 신기하다... 그냥 진짜 어원 그대로의 list...

index별로 모든 데이터가 다 들어갈 수 있어

막 메트릭스 들어가고 막... 막.. 신기방기..

- 기본적인 plot

그냥 plot(1) 하면 점이 찍힌다.

plot은 시각화라고 생각해도 되는데, r plot이 있고, ggplot이 있다. ggplot은 구글에서 만든? 라이브러리인데, 종류가 많아서 단기간에 체득하기는 어렵다.

plot() : data의 좌표상 위치를 보여준다. (산점도 파악)

hist() : 히스토그램이다. 데이터별 분포를 볼 수 있다.

ts.plot() : 시계열 데이터들을 그려준다.

뭐 이것저것 많이 나오긴 했는데, 확실히 무료강의라서 그런지 너무 짧막하게 설명해서 모르겠는게 참 많았다. 일단 ADsP를 공부해보고, 이 책에 나오는 내용을 바탕으로 R을 확장시켜보자.

[출처] 인프런 R프로그래밍 기초 다지기 (21.01.03 ~ 05)|

작성자

 winney