일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- RStudio
- 서술형 문항 제작 절차
- 컨트롤+B
- 교차분석 #교육학
- Chrome 단축키
- RStudio 설치
- 서울대학교 일반전형
- R studio
- 청년주택드림청약통장
- R
- 구술면접
- S&P500
- R 스터디
- 에틸렌
- R설치
- 2022년
- 엔저현상
- 교육 통계
- 서울대
- 크롬 단축키
- 생명과학
- dplyr
- 논술
- 기초함수
- ctrl+B
- 구술 면접
- 단축키 해제
- 2024년
- 문헌 읽기
- iShared S&P 500 JPY Hedged ETF
- Today
- Total
이끼네
[7월 11일] R 스터디 본문
오늘은 dplyr 패키지를 한 번 알아보도록 하자.
install.packages("dplyr")
library(dplyr)
ctrl + shift + M : %>% 합성 함수?
1. 데이터 %>% mutate(new=old+old)
mutate() 함수는 dplyr 패키지에서 제공되는 함수로, 데이터프레임의 열(column)을 변환하거나 새로운 열을 추가하는 데 사용됩니다.
- dt<-dt %>% mutate(priv=E.priv+M.priv)
- dt<-dt %>% mutate(priv=E.priv+M.priv, .after = M.priv) (.after, .before = 변수 위치 넣을 곳 결정)
- dt<-dt %>% mutate(newK = K.score/10)
- dt<-dt %>% mutate(SCHID=c(rep("A", 60),
rep("B", 60),
rep("C", 60),
rep("D", 60),
rep("E", 60)),
.before=genderR)
2. mutate()와 조합 : recode()
recode() 함수는 주어진 값들을 다른 값으로 바꾸는 기능을 제공합니다. 일반적으로 주어진 값들을 조건에 따라 변환하거나 대체할 때 사용됩니다.
recode(변수, “기존값1”=“새 값1”, “기존값2“=“새 값2”… )
- dt<-dt %>% mutate( gender=recode_factor(genderR, "1"="female", "0"="male"))
3. mutate()와 조합 : case_when()
- 형식 : case_when(조건1~"값1",... ,TRUE~"low")
- dt<-dt%>%mutate(M.score.rank=case_when(M.score>=80 ~ "high", TRUE~"low")
#을 누르면 주석으로 쓸 수 있음.
#### title #### : #을 4개를 붙이면, 목차를 하나 만들 수 있다. 그리고 화살표 누르면 코드 접을 수 있음.
4. mutate()와 조합: na_if()
- 형식 : na_if(변수, 결측지정값) 이거 하면 NA로 입력된다고!
- dt<-dt%>%mutate(K.int1=na_if(K.int1,-9))
- 심화 : dt<-dt%>%mutate(across(genderR:M.score,~na_if(.,-9)))
결측에 대한 코드가 각각 다를 수 있음. 예를 들어, 체계적인 결측!
그래서 코드북을 잘 살펴보고 코드를 입력하는 것이 필요함.
5. mutate()와 조합 : rowwise()
- rowwise() : '행 단위'로 인식하라는 명령어 (이거 안하면 사람 전체 평균이 구해진다!)
dt<-dt %>% rowwise() %>% mutate( K.int= mean(c(K.int1,K.int2,K.int3), na.rm = T),
M.int= mean(c(M.int1,M.int2,M.int3), na.rm = T),
E.int= mean(c(E.int1,E.int2,E.int3), na.rm = T),
.before = K.int1 ) %>% ungroup() (이거 써서 행단위 계산 꼭 꺼야된다!!!)
마지막으로, ungroup() 함수를 사용하여 행 단위 연산을 종료하고 데이터프레임을 기본 동작으로 돌려놓습니다. 이렇게 하면 'dt' 데이터프레임에 새로운 열들이 추가되고, 행 단위 연산 모드가 해제됩니다
6. filter()
- 데이터%>%filter("조건") 데이터 객체가 하나 더 생기는거야!
- dt.female <- dt %>% filter(gender==“female”)
- dt.Mhigh <- dt %>% filter(M.score > mean(M.score, na.rm=T) # '데이터명$‘ 생략!
- dt.A <- dt %>% filter(region=="small" & M.priv==0)
- dt.A <- dt %>% filter(region=="small") %>% filter(M.priv==0)
- dt.B <- dt %>% filter(K.score<50 | M.score<50)
7. select()
- 데이터 %>% select(변수, 변수,.../ 또는 특정 조건) 데이터 객체가 하나 더 생기는거야!
- dt.scores <- dt %>% select(K.score, M.score, E.score)
- dt.scores <- dt %>% select(contains("score"))
- dt.cleaned <- dt %>% select(-genderR, -regionR) %>% select(!(ends_with(c("1","2","3"))))
- 파란색 처럼 다양한 조합을 사용해서 변수를 선택할 수 있어!
8. summarise()
- 데이터%>%summarise(이름=통계량함수(변수),...) 데이터 객체가 하나 더 생기는거야!
dt.cleaned %>% summarise(M.mean= mean(M.score, na.rm = T),
M.max=max(M.score, na.rm = T),
M.min=min(M.score, na.rm = T),
n= n()-sum(is.na(M.score)) ) 결측된 값의 합만큼을 빼서 계산해줘 = 유효사례 수!
9. group_by()
- 그룹 별로 데이터 통계량을 제공해줘! 이거 유.용.하.다!
- 근데, 이거 M.min 할 때, 결측값을 안 빼면, 조꼼 이상한 결과 나올듯!
- rowwise()는 gourp_by()의 일종 (각 행을 그룹으로 인식)
'연구방법_통계 > R' 카테고리의 다른 글
[R 스터디] ggplot2 관련 아이디어 링크 (0) | 2023.07.31 |
---|---|
[7월 25일] R 스터디 (0) | 2023.07.25 |
[7/18] R 스터디 (0) | 2023.07.18 |
2. [7월 4일] R 스터디 (0) | 2023.07.04 |
R과 R Studio 다운로드 받기 (0) | 2023.07.03 |