전처리 패키지 dplyr 정리

2023. 12. 24. 18:00·1학년/R언어

전처리 패키지 dplyr

 

1. 설치 install.packages("dplyr")
library(dplyr)
2. 이름변경
rename
#변경이름 = 기존이름 방식으로
iris1<- iris %>%
  rename(a1=Sepal.Length, a2=Sepal.Width)
3. 변수 생성
mutate
#1부터 150까지 입력되어있는 id 변수를 새로 생성


iris2<-iris %>%
  mutate(label=c(1:150))


#petal.length로 label 넣기
iris2<-iris2 %>%
  mutate(label=ifelse(Petal.Length<=1.6, "L",
                      ifelse(Petal.Length>=5.1,"H","M")))


#transmute의 사용(사용 시 새로 생긴 변수 빼고 없어짐)
iris2<-iris2 %>%
  transmute(label=ifelse(Petal.Length<=1.6, "L",
                           ifelse(Petal.Length>=5.1,"H","M")))

4. 행 추출
filter
iris3<-iris %>%
  filter(Species=="setosa"|Species=="versicolor")


#결측치 제거
#실험용 결측치
iris3<- iris
iris3[1,1] = NA
iris3[2,2] = NA


iris3<- iris3 %>%
  filter(!is.na(Sepal.Width)&!is.na(Sepal.Length))

5. 열 추출
select
iris4<-iris %>%
  select(Sepal.Length,Sepal.Width)
6. 정렬
arrange
#오름차순 정렬
iris5<- iris %>%
  mutate(id = (150:1)) %>%
  arrange(id)


#내림차순 정렬
iris5<- iris %>%
  mutate(id = (1:150)) %>%
  arrange(desc(id))
7. 그룹화, 요약
group_by와

summary
#group_by(Species)는 데이터프레임을 "Species" 열을 기준으로 그룹화합니다.


iris6 <- iris %>% group_by(Species) %>%
  summarise(평균=mean(Sepal.Length), 합=sum(Sepal.Width), 관측치=n())



8. 열 합치기
left_join
ex1 <-iris[1:5,1:2]
ex2 <-iris[1:6,1:2]
#cbind(ex1,ex2) 행 길이 달라서 실행 안됨됨
left_join(ex1,ex2) #ex1 기준
left_join(ex2,ex1) #ex2 기준
9. 행 합치기bind_rows #위아래 방향으로 합쳐짐
bind_rows(ex1,ex2)
10. 결합 left_join : x기준 합치기, y에 없으면 y값은 NA
inner_join : 겹치는 행만 뽑기

full_join : 합집합으로 다 합치기, 없는 값은 NA


#by 인자를 통해 병합 기준 열을 정하기
안해도 자동적으로 병합하긴함, 하지만 by를 써도됨
11. 중복 제거(1)
distinct
사용
(변수,.
keep_all
=true
ex1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5), gender = c("F", "F", "M", "F", "B", "B", "F", "M"), variant = c("a", "b", "c", "d", "e", "f", "g", "h"))


das<- ex1[-which(duplicated(ex1$id)),]


#id 기준 중복 제거
t1 <- ex1 %>% distinct(id, .keep_all = TRUE)


#gender 기준 중복 제거
t2 <- ex1 %>% distinct(gender, .keep_all = TRUE)


#variant 기준 중복 제거
t3 <- ex1 %>% distinct(variant, .keep_all = TRUE)

12. 중복제거(2)
group_by,
filter
와
duplicate
ex3 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5), gender = c("F", "F", "M", "F", "B", "B", "F", "M"), variant = c("a", "b", "c", "d", "e", "f", "g", "h"))


t1 <- ex3 %>% group_by(id) %>% filter (! duplicated(id))


t2 <- ex3 %>% group_by(gender) %>% filter (! duplicated(gender))


t3 <- ex3 %>% group_by(variant) %>% filter (! duplicated(variant))

 

 

'1학년 > R언어' 카테고리의 다른 글

데이터의 이해, 단순회귀와 데이터 전처리/해석  (1) 2023.12.23
데이터의 이해, 그래프/산점도 그리기와 다중공선성  (2) 2023.12.22
데이터의 이해, 반복문  (1) 2023.12.22
데이터의 이해 중간고사 정리  (1) 2023.12.21
모두를 위한 R 데이터 분석 입문 CH3. 매트릭스와 데이터프레임 다루기, 파일 데이터 읽기쓰기 정리  (2) 2023.12.21
'1학년/R언어' 카테고리의 다른 글
  • 데이터의 이해, 단순회귀와 데이터 전처리/해석
  • 데이터의 이해, 그래프/산점도 그리기와 다중공선성
  • 데이터의 이해, 반복문
  • 데이터의 이해 중간고사 정리
피까츄
피까츄
프로그래밍 마스터가 될테야
  • 피까츄
    프로그래밍 마스터
    피까츄
  • 전체
    오늘
    어제
    • 분류 전체보기 (65)
      • 컴퓨터가 이상해요 모음집 (3)
      • 프로그래밍 (0)
      • 회고 (0)
      • 1학년 (21)
        • 명품 HTML+CSS+JS (10)
        • 쉽게 배우는 C언어 Express (2)
        • R언어 (9)
      • 2학년 (3)
        • C언어로 쉽게 풀어쓴 자료구조 (1)
        • 프로그래밍 언어론 (2)
      • 개인공부 (25)
        • 백준 (17)
        • 코드트리 JS (7)
        • 코테 공부 (1)
      • 교재 (9)
        • 이것이 C++이다 (0)
        • 이것이 JAVA다 (0)
        • 혼자 공부하는 컴퓨터구조 + 운영체제 (1)
        • 혼자 공부하는 데이터통신 (0)
        • 코어 자바스크립트 (8)
      • 유데미 (3)
        • 100일 코딩 챌린지 (3)
  • 블로그 메뉴

    • 방명록
    • 그림블로그
    • 3D 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    복습
    0x80370102오류코드
    가상현실 설정
    우분투 설치 오류
    우분투java
    프로그래밍언어론
    HTML5+CSS3+Javascript 웹 프로그래밍 #연습문제 #이론문제 #실습문제 #풀이 #정답
    작업표시줄클릭안됨
    js #자바스크립트_기초
    윈도우 기능 켜기
    우분투C
    the package javax.swing is not accessible
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
피까츄
전처리 패키지 dplyr 정리
상단으로

티스토리툴바