brunch

You can make anything
by writing

C.S.Lewis

by ONicial Kes Sep 27. 2022

R을 맨땅으로 시작하다.(2)

비전공자의 데이터 공부 일기

 데이터를 본격적으로 공부하다보니 일찍 시작할 걸 이라는 아쉬움이 든다. 대학 시절에도 늘 컴공 수업을 청강해보는 것을 생각했었기에 아쉬움이 더 큰 것 같다. 그럼 2강 복습이다.


1) 벡터를 만드는 방법

c(), :, seq() 로 만들거나 빈 벡터 선언 후 채우기 방법은 x <- vector(length =3) 식으로 만들고 3개의 칸이 있는 빈 벡터가 생긴다. 이 후 []를 활용하여 채워 넣을 수 있다. x[2] <- 3 은 x라는 벡터에 2번 째 자리에 3을 넣어달라는 의미이다.


2) :의 연산 순서

다른 사칙 연산보다 우선 순위에 있다.


3) seq() 함수의 활용

seq(시작값, 끝값, 옵션) 형식인데 by 옵션이나 length 옵션을 활용할 수 있다. by의 경우 차이를 말하고 length는 벡터의 길이를 설정해 자동으로 차이를 계산하여 설정해야 준다.


4) rep() 함수의 이해

rep(반복대상, 반복횟수)인데 반복대상에는 벡터도 들어가 갈 수 있다. 반복횟수에 each 옵션을 넣을 수 있는데 예를 들어 rep(2:4, each = 2)라고 하면 2, 2, 3, 3, 4, 4 처럼 같은 숫자를 반복하면서 순열이 진행된다.


5) shift + alt + down 

구문을 복사해서 붙여 준다.


6) 벡터 인덱싱(색인)

벡터 원소만을 선택하는 방법으로 []을 활용한다. 또한 인덱싱은 중복이 가능하다. x[c(2, 2, 4, 3)]처럼. 2를 두번 넣을 수 있다. 그럼 2번째 원소가 연이어 두 번 추출된다. 다음으로 특정 원소를 빼는 것도 가능한데 이 때 - 기호를 활용한다. x[-1]을 활용하면 첫 번째 원소를 빼고 결과값을 보여준다. x[-c(1:3)]라고 하면 첫 번째에서 세 번째 원소까지 제외하고 결과 값을 보여준다.


7) all() 함수와 any() 함수의 활용(논리 연산)

all(x<5) 치면 true나 false로 답변이 나온다. all은 곱셉 연산으로 처리되고 any는 덧셈 연산으로 처리된다. TRUE는 1로 치환되며 FALSE는 0으로 치환될 수 있다.


8) 벡터의 필터링

[]을 활용하여 안에 논리식 구문을 작성한다. x[x < 10]의 경우


*[]을 색인을 위해서도 활용했는데 필터링까지 2가지 활용법으로 되는지 확인 필요!!


9) 필터링에 활용되는 연산자들


== 같다는 표시 x[x == 5] x가 5인 원소를 가져와줘

!= 다르다는 표시 x[x != 5] x 중 5가 아닌 원소들을 가져와줘

%% 나머지를 구해달라는 표시 x[x %% 5 == 0] x를 5로 나눴을 때 나머지가 0인 x 원소를 가져와줘

&/& 몫을 구해달라는 표시 x[x %/% 5 == 4] x를 5로 나눴을 때 몫이 4인 x 원소를 가져와줘

& and 곱셈과 비슷하다. TRUE X TRUE = TRUE, TRUE X FALSE = FALSE

| OR는 TRUE X FALSE 가 TRUE다

&&, || 는 첫 번째 원소만 비교


10) [] 활용

x[x < 8 | x > 13][-6] []을 두 번 쓰면서 앞의 벡터의 위치값을 써줄 수 있다. 6번째 위치에 있는 값을 제거하고 보여줘라는 뜻


11) which() 함수의 활용

which(x == -1)의 뜻은 x 벡터에서 -1이 있는 위치 값을 알려준다.  

which(y %% 1025 = 47)[3]의 의미는 

11.1 y %% 1025 = 47은 TRUE, FALSE의 집합체로 나머지가 47인 원소값은 TRUE로 배출

11.2 which(y %% 1025 = 47)은 which 함수는 TRUE 값의 위치 정보를 찾아주어 위치값으로 이루어진 벡터 배출

11.3 which(y %% 1025 = 47)[3]은 which의 결과 벡터에서 3번째 값을 가져오는 것으로 결과적으로 y 원소 중 1025로 나누어 나머지가 47인 원소들의 집합 중 3번째 값의 위치 값을 알려줌

위치값이 아닌 값을 구하려면 그 위치값을 y[]에 넣어 해당 위치의 값을 가져오면 됨.


*처음에 이해하기 너무 어려웠다.


12) NA와 NULL

 NA는 자리는 있지만 값이 부여되지 않은 경우 NULL은 자리도 없음

na.rm은 NA 값을 무시하는 옵션으로 na.rm = TRUE일 경우 NA값 무시


13) 벡터의 이름 붙여주기

각 원소에 이름을 붙여 줄 수 있다.

names(my_vector) <- c("존나", "어렵다", "데이터")

데이터 원소 이름  존나 어렵다 데이터

           원소          1      20    300

으로 출력됨

my_vector["존나"]을 입력하면 

존나 

이 출력됨


문자를 불러올 때는 "를 붙여야함 


15) cbind(), rbind()

c는 칼럼, r은 로우임

cbind(1:4, 12:15) 세로로 붙임

rbind(1:4, 12:15) 가로로 쌓아 붙임


2번째 수업이지만 정말 머리가 깨지는 줄 알았다. which를 통해 계산식을 잠깐 맛보았는데 위치값과 해당 값을 찾는 연산이 너무 헷갈려서 한참 헤매었다. 앞으로 꾸준하게 정진하길.

작가의 이전글 R을 맨땅으로 시작하다.
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari