R studios

R통계 : Theme #4. Dplyr package

Frisbeen 2024. 5. 27. 16:59
  1. filter() - 조건식으로 필터링

and, or, ≥ < 와 %in% 집합 내부에 있는지 검사

exam %>% filter(class %in% c(1,3,5))

exam안에 class 열 안에 1,3,5가 있는 녀석들만 필터링 하겠다는것

그 외에도 
^ 제곱
%/% 나눗셈의 몫
%% 나눗셈의 나머지
이런 녀석들도 연산에 활용가능
  1. select() - 필요한 데이터 선택
df <- df %>% select(-columnName)
##columnName을 제외한 모든 열을 선택하는 데 사용됩니다.
  1. arrange() - 정렬
##arrange()의 기준이 하나만 있어야하는건 아니다.
exam %>% arrange(class, desc(math))

>> 이렇게 두개 이상의 기준을 넣어버리면 먼저 class로 정렬 후, 그 다음 math의 내림차순으로..

  1. mutate() - 파생변수 추가

exam이라는 데이터에는 english 열, math열, id열 ,class열 있다고 가정.

##함수 내에서 $표기 쓰지 않는다
exam %>% mutate(total = english + math, test = ifelse(science>60,"pass","fail"))
##이런식으로 콤마를 활용해 여러가지 열을 한번에 추가할 수도 있다.

이렇게 mutate를 활용해서 만든 열의 값을 활용하여  뒤에다가 %>% arrange(total) 해줘도 괜찮아용
  1. group_by(), summarize()

같이 쓸때 매우 유용. mutate랑 비슷하게 열을 추가하는 기능도 존재.

exam %>% group_by(class) %>% summarise(mean_math= mean(math)
##summarise(sum(), median(), n() ) 와 같은 다양한 함수를 서머라이즈 안에 넣어서 사용
## min(), max() 이런 최대최소값도 넣어줄수도 있거덩!
## 빈도보는 n()를 기억하자.
  1. left_join(data1, data2 by=”공통된 열”) -”가로로 합치기”

##두개의 데이터에 공통된 열 값이 존재할때,

data1

id mid

1 5

2 4

data2

id final

1 4

2 3

total12 = left_join(data1,data2,by="id")
이렇게하면
	id mid final값이 한번에 total12에 담길 것.
  1. bind_rows(data1,data2)

##얘는 좀 더 엄격하다.

열의 이름이 다 같아야함

따라서 변수명이 다르다면 rename을 활용하여 다 동일하게 맞춰서 사용해야한다.